欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  本篇文章给大家带来的内容是关于http协议一览,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
 
  这里我只是对一些知识进行简单的整理,方便自己理解记忆,还有很多不完善的地方,更多细节,需要查看书籍或者其他文章
 
  http协议的发展过程
 
  HTTP是基于TCP/IP协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。
 
  http/0.9
 
  1991年发布,只有一个命令GET,协议规定,服务器只能回应HTML格式的字符串,不能回应别的格式。
 
  http/1.0
 
  1996年5月发布,HTTP/1.0版本发布,内容大大增加,首先,任何格式的内容都可以发送。这使得互联网不仅可以传输文字,还能传输图像、视频、二进制文件。这为互联网的大发展奠定了基础。除了GET命令,还引入了POST命令和HEAD命令,丰富了浏览器与服务器的互动手段。
 
  HTTP请求和回应的格式也变了。除了数据部分,每次通信都必须包括头信息(HTTPheader),用来描述一些元数据。
 
  其他的新增功能还包括状态码(statuscode)、多字符集支持、多部分发送(multi-parttype)、权限(authorization)、缓存(cache)、内容编码(contentencoding)等。
 
  **缺点:**
 
  每个TCP连接只能发送一个请求。发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接。
 
  TCP连接的新建成本很高,因为需要客户端和服务器三次握手,并且开始时发送速率较慢(slowstart)。所以,HTTP1.0版本的性能比较差。随着网页加载的外部资源越来越多,这个问题就愈发突出了。
 
  为了解决这个问题,有些浏览器在请求时,用
 
  列表项目
 
  了一个非标准的Connection字段。
 
  Connection:keep-alive
 
  一个可以复用的TCP连接就建立了,直到客户端或服务器主动关闭连接。但是,这不是标准字段,不同实现的行为可能不一致,因此不是根本的解决办法。
 
  http/1.1
 
  1997年1月发布,HTTP/1.1版本发布,只比1.0版本晚了半年。它进一步完善了HTTP协议,一直用到了20年后的今天,直到现在还是最流行的版本。
 
  1.1版的最大变化,就是引入了持久连接(persistentconnection),即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection:keep-alive。
 
  客户端和服务器发现对方一段时间没有活动,就可以主动关闭连接。不过,规范的做法是,客户端在最后一个请求时,发送Connection:close,明确要求服务器关闭TCP连接。
 
  1.1版还新增了许多动词方法:PUT、PATCH、HEAD、OPTIONS、DELETE。
 
  **缺点**
 
  虽然1.1版允许复用TCP连接,但是同一个TCP连接里面,所有的数据通信是按次序进行的。服务器只有处理完一个回应,才会进行下一个回应。要是前面的回应特别慢,后面就会有许多请求排队等着。这称为"队头堵塞"(Head-of-lineblocking)。
 
  为了避免这个问题,只有两种方法:
 
  一是减少请求数;
 
  二是同时多开持久连接。这导致了很多的网页优化技巧,比如合并脚本和样式表、将图片嵌入CSS代码、域名分片(domainsharding)等等。如果HTTP协议设计得更好一些,这些额外的工作是可以避免的。
 
  SPDY
 
  2009年,谷歌公开了自行研发的SPDY协议,主要解决HTTP/1.1效率不高的问题。这个协议在Chrome浏览器上证明可行以后,就被当作HTTP/2的基础,主要特性都在HTTP/2之中得到继承。
 
  HTTP/2
 
  2015年,HTTP/2发布。它不叫HTTP/2.0,是因为标准委员会不打算再发布子版本了,下一个新版本将是HTTP/3。
 
  HTTP/1.1版的头信息肯定是文本(ASCII编码),数据体可以是文本,也可以是二进制。HTTP/2则是一个彻底的二进制协议。
 
  二进制协议的一个好处是,可以定义额外的帧。HTTP/2定义了近十种帧,为将来的高级应用打好了基础。如果使用文本实现这种功能,解析数据将会变得非常麻烦,二进制解析则方便得多。
 
  HTTP/2复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应,这样就避免了"队头堵塞"。
 
  HTTPS
 
  HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理。
 
  http协议的特点
 
  无状态——每次HTTP请求都是独立的,任何两个请求之间没有什么必然的联系。但是在实际应用当中并不是完全这样的,引入了Cookie和Session机制来关联请求。
 
  无连接的——每次请求完成之后立即断开连接
 
  单向的应用层协议——通信请求只能由客户端发起,服务端对请求做出应答处理。
 
  多次请求——在客户端请求网页时多数情况下并不是一次请求就能成功的,服务端首先是响应HTML页面,然后浏览器收到响应之后发现HTML页面还引用了其他的资源,例如,CSS,JS文件,图片等等,还会自动发送HTTP请求这些需要的资源。
 
  现在的HTTP版本支持管道机制(即在同一个TCP连接里面,客户端可以同时发送多个请求),可以同时请求和响应多个请求,大大提高了效率。





本文转载自中文网

 

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html5/h54422.shtml