ajax GET数据在最低级别看起来是什么样的?

时间:2013-09-26 13:32:22

标签: http network-protocols

GET请求可用于检索图像和文本以及我猜测的其他内容。无需指定Content-type

这些数据在位级别上是什么样的?如果你正在查看HTTP数据包中的1和0,那么什么规范决定了这里可以放置什么。

使用客户端,当我通过ajax GET发送/接收数据时,数据是直接传输到数据包中的1和0还是有某种转换?

例如:

xhr = new win.XMLHttpRequest();
xhr.open('GET', config_ajax.url, true);
xhr.onload = function () {
    if (this.status === 200) {
        config_ajax.callback(xhr.responseText);
    }
};
xhr.send(send);

// example data

send = "0xFF";
xhr.responseText = "0x0A" 

如果他们正在分析比特流,是否会看到11111111被发送并且00001010被接收了?

1 个答案:

答案 0 :(得分:1)

  

我想没有必要指定Content-type。这个数据在比特级别看起来是什么样的?如果你正在查看HTTP数据包中的1和0,那么什么规范决定了这里可以放置什么。

您正在寻找HTTP规范本身section 7。事实上,它的工作方式与你想象的完全相同:

  

7实体

     

请求和响应消息如果没有,则可以转移实体   受请求方法或响应状态代码限制。一个   虽然实体由实体标题字段和实体主体组成   一些回复只包含实体标题。

     

在本节中,发件人和收件人都指客户端   或服务器,取决于谁发送和谁接收实体。

     

在本节中,发件人和收件人都指的是   客户端或服务器,取决于谁发送和谁接收   实体。

     

7.1实体标题字段

     

实体标题字段定义有关实体主体的元信息   或者,如果没有身体,则关于由...识别的资源   请求。这些元信息中的一些是可选的;有些人可能会   本规范的部分内容要求。

   entity-header  = Allow                    ; Section 14.7
                  | Content-Encoding         ; Section 14.11
                  | Content-Language         ; Section 14.12
                  | Content-Length           ; Section 14.13
                  | Content-Location         ; Section 14.14
                  | Content-MD5              ; Section 14.15
                  | Content-Range            ; Section 14.16
                  | Content-Type             ; Section 14.17
                  | Expires                  ; Section 14.21
                  | Last-Modified            ; Section 14.29
                  | extension-header

   extension-header = message-header
     

扩展标头机制允许额外的实体标头   在不改变协议的情况下定义字段,但这些字段   字段不能被假定为接收者可识别。   收件人应该忽略无法识别的标题字段   必须由透明代理转发。

     

7.2实体正文

     

使用HTTP请求或响应发送的实体主体(如果有)是   以实体标题字段定义的格式和编码。

   entity-body = *OCTET
     

实体主体仅在消息正文时出现在消息中   现在,如4.3节所述。获得实体主体   通过解码可能的任何Transfer-Encoding从消息体中获取   已被用于确保安全和正确地传递信息。

     

7.2.1类型

     

当实体主体包含在消息中时,数据类型为   该主体是通过标题字段Content-Type和确定的   内容编码。这些定义了两层有序编码   模型:

   entity-body := Content-Encoding( Content-Type( data ) )
     

Content-Type指定基础数据的媒体类型。   内容编码可用于指示任何附加内容   编码应用于数据,通常用于数据目的   压缩,它是所请求资源的属性。有   没有默认编码。

     

包含实体主体的任何HTTP / 1.1消息应该包含一个   Content-Type标头字段,用于定义该主体的媒体类型。如果   并且只有当Content-Type字段没有给出媒体类型时,   收件人可以尝试通过检查媒体类型来猜测媒体类型   用于标识的URI的内容和/或名称扩展名   资源。如果媒体类型仍然未知,则收件人应该   将其视为“application / octet-stream”类型。

     

7.2.2实体长度

     

消息的实体长度是消息体的长度   在进行任何转移编码之前。第4.4节定义   如何确定消息体的传输长度。