http小结
Posted FarmGuo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http小结相关的知识,希望对你有一定的参考价值。
1.0/1.1/2.0/3.0 区别
1.0 默认一次请求-响应,建立一个连接,用完关闭;每一个请求都要建立一个连接。但浏览器都支持同时多个TCP的连接。Connection: Keep-Alive默认关闭。
1.1 支持持续连接,分为非pipelining和pipelining,非pipelining就是收到前一个响应后才能发出下一个请求,而pipelining则客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果。Connection: Keep-Alive,默认开启的。
2.0 支持多路复用,复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应,这样就避免了"队头堵塞"。支持二进制分帧,将请求和响应数据分割为更小的帧。支持服务器推送,允许服务端推送资源给客户端。
3.0 基于UDP,省去了三次握手的消耗。多路复用,彻底解决 TCP 中队头阻塞的问题。
Get/Post 区别
1、语义来说,Get是获取数据,即从服务端客户端,Post是提交数据,从客户端到服务端。如果反过来用也是可以的,但这不符合惯例。
2、GET请求参数是通过URL传递的,多个参数以&连接,POST请求放在request body中。
3,Get会被缓存,被历史记录保留,而Post不会。
4,编码方式:GET请求只能进行url编码,而POST支持多种编码方式( application/x-www-form-urlencoded 或 multipart/form-data)。
5,Get的URL长度有限制
6,Get的数据类型只允许ASCII,而POST没有限制。
7,Get是一个TCP包,而Post可能是两个,当首个包返回100时,再提交第二个包。
8,GET的URL长度有限制,POST无限制。
最主要的区别就是1,其他的区别基本上都是浏览器实现的区别。
以上是关于http小结的主要内容,如果未能解决你的问题,请参考以下文章