http协议简史
Posted silyvin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http协议简史相关的知识,希望对你有一定的参考价值。
https://blog.csdn.net/liujianfei526/article/details/53289350
0.9
协议规定,服务器只能回应html格式的字符串,不能回应别的格式。
1.0
首先,任何格式的内容都可以发送。这使得互联网不仅可以传输文字,还能传输图像、视频、二进制文件。
除了数据部分,每次通信都必须包括头信息(HTTP header),用来描述一些元数据。
1.0版规定,头信息必须是 ASCII 码,后面的数据可以是任何格式。因此,服务器回应的时候,必须告诉客户端,数据是什么格式,这就是Content-Type
字段的作用。
如text/html 、application/json;charset=UTF-8
这些数据类型总称为MIME type
除了预定义的类型,厂商也可以自定义类型,即私有http协议,body部分自定义编解码二进制流
客户端请求的时候,可以使用Accept
字段声明自己可以接受哪些数据格式。
由于发送的数据可以是任何格式,因此可以把数据压缩后再发送。Content-Encoding
字段说明数据的压缩方法。如Content-Encoding: gzip
客户端在请求时,用Accept-Encoding
字段说明自己可以接受哪些压缩方法。Accept-Encoding: gzip, deflate
有些浏览器在请求时,用了一个非标准的Connection
字段。Connection: keep-alive,这个字段要求服务器不要关闭TCP连接,以便其他请求复用。服务器同样回应这个字段。但是,这不是标准字段,不同实现的行为可能不一致,因此不是根本的解决办法。
1.1
1.1 版的最大变化,就是引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive
。
客户端和服务器发现对方一段时间没有活动,就可以主动关闭连接。不过,规范的做法是,客户端在最后一个请求时,发送Connection: close
,明确要求服务器关闭TCP连接。 Connection: close
一个TCP连接现在可以传送多个回应,势必就要有一种机制,区分数据包是属于哪一个回应的。这就是Content-length
字段的作用,声明本次回应的数据长度。
Content-Length: 3495,上面代码告诉浏览器,本次回应的长度是3495个字节,后面的字节就属于下一个回应了。
以上是关于http协议简史的主要内容,如果未能解决你的问题,请参考以下文章