作家
登录

HTTP协议入门

作者: 来源: 2017-05-26 11:06:29 阅读 我要评论

  1. Content-Type: text/html; charset=utf-8 

膳绫擎的类型注解,发送的是网页,并且编码是UTF-8。

客户端请求的时刻,可以应用Accept字段声明本身可以接收哪些数据格局。

  1. Accept: */* 

膳绫擎代铝闼楝客户端声明本身可以接收任何格局的数据。

  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
  2.  
  3. <!-- 等同于 --> 
  4.  
  5. <meta charset="utf-8" />  

2.5 Content-Encoding 字段

因为发送的数据可所以任何格局,是以可以把数据紧缩后再发送。Content-Encoding字段解释数据的紧缩办法。

  1. Content-Encoding: gzip 
  2.  
  3. Content-Encoding: compress 
  4.  
  5. Content-Encoding: deflate  

客户端在请求时,用Accept-Encoding字段解释本身可以接收哪些紧缩办法。

2.6 缺点

HTTP/1.0 版的重要缺点是,每个TCP连接只能发送一个请求。发送数据完毕,连接就封闭,如不雅还要请求其他资本,就必须再新建一个连接。

TCP连接的新建成本很高,因为须要客户端和办事器三次握手,并且开端时发送速度较慢(slow start)。所以,HTTP 1.0版本的机能比较差。跟着网页加载的外部资本越来越多,这个问题就愈发凸起了。

为懂得决这个问题,有些浏览器在请求时,用了一个非标准的Connection字段。

MIME type不仅用在HTTP协定,还可以用在其他处所,比如HTML网页。

  1. Connection: keep-alive 

这个字段请求办事器不要封闭TCP连接,以便其他请求复竽暌姑。办事器同样回应这个字段。

  1. Connection: keep-alive 
  1. Accept-Encoding: gzip, deflate 

一个可以复竽暌姑的TCP连接就建立了,直到客户端或办事器主动封闭连接。然则,这不是标准字段,不合实现的行动可能不一致,是以不是根本的解决办法。

三、HTTP/1.1

1997年1月,HTTP/1.1 版本宣布,只比 1.0 版本晚了半年。它进一步完美了 HTTP 协定,一向用到了20年后的今天,直到如今照样最风行的版本。

1.1 版的最大年夜变更,就是惹人了持久连接(persistent connection),即TCP连接默认不封闭,可以被多个请求复竽暌姑,不消声明Connection: keep-alive。

客户端和办事器发明对方一段时光没有晃荡,就可以主动封闭连接。不过,规范的做法是,客户端在最后一个请求时,发送Connection: close,明白请求办事器封闭TCP连接。

  1. Connectionclose 

今朝,对于同一个域名,大年夜多半浏览器许可同时建立6个持久连接。

3.2 管道机制

1.1 版还惹人了管道机制(pipelining),即在同一个TCP连接琅绫擎,客户端可以同时发送多个请求。如许就进一步改进了HTTP协定的效力。

举例来说,客户端须要请求两个资本。以前的做法是,在同一个TCP连接琅绫擎,先发送A请求,然后等待办事器做出回应,收到后再发出B请求。管道机制则是许可浏览器同时发出A要乞降B请求,然则办事器照样按照次序,先回应A请求,完成后再回应B请求。

3.3 Content-Length 字段

一个TCP连接如今可以传送多个回应,势必就要有一种机制,区分数据包是属于哪一个回应的。这就是Content-length字段的感化,声明本次回应的数据长度。

  1. Content-Length: 3495 

膳绫擎代码告诉浏览器,本次回应的长度是3495个字节,后面的字节就属于下一?回应了。

HTTP/2 将每个请求或回应的所稀有据包,称为一个数据流(stream)。每个数据流都有一个环球无双的编号。数据包发送的时刻,都必须标记数据流ID,用来区分它属于哪个数据流。别的还规定,客户端发出的数据流,ID一律为奇数,办事器发出的,ID为偶数。

在1.0版中,Content-Length字段不是必须的,因为浏览器发明办事器封闭了TCP连接,就注解收到的数据包已经全了。

3.4 分块传输编码

应用Content-Length字段的前提前提是,办事器发送回应之前,必须知道回应的数据长度。

对于一些很耗时的动态操作来说,这意味着,办事器要比及所有操作完成,才能发送数据,显然如许的效力不高。更好的处理办法是,产生一块数据,就发送一块,采取”流模式”(stream)代替”缓存模式”(buffer)。

是以,1.1版规定可以不应用Content-Length字段,而应用“分块传输编码”(chunked transfer encoding)。只要请求或回应的头信罕见Transfer-Encoding字段,就注解回应将由数量不决的数据块构成。


  推荐阅读

  智慧泵房让供水走上“云端”

近日,在百官街道阳光假日小区,记者见到二次供水聪明泵房。比起改革前的旧泵房,说其是聪明泵房名副其实。该泵房集成了聪明安防体系、智能供水设备、聪明治理平台、聪明保护治理等体系,大年夜大年夜进步了二次供水>>>详细阅读


本文标题:HTTP协议入门

地址:http://www.17bianji.com/lsqh/35446.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)