HTTP协议常见问题

HTTP 1.1新特性
 
1) 默认请求为长连接(Connection:Keep-Alive)
2) 增加host参数,可实现一个ip对应多个应用
3) 增加100等状态码
4) 增加PUT/DELETE等请求方法
5) 增加chunked下载
 
HTTP 2.0新特性
 
1) 多路复用,按优先级下载(在1.1 pipelining上有改进)
2) 压缩head
3) 支持服务器推送
 
GET和POST区别
 
1) GET属幂等请求,POST不是
2) GET将数据附在URL之后,POST将数据放在HTTP请求的body里
   1.1) GET提交数据最多1024字节,POST理论上没有限制
   1.2) GET请求存在缓存的问题
   1.3) GET请求安全性不如POST
   1.4) 提交数据的默认编码不一样
 
HTTP缓存
 
不发送请求,直接使用缓存文件方式:Cache-Control、Expries
发送请求,选择性使用缓存文件:Etag,Last-Modified
参数优先级:Cache-Control > Expries > Etag > Last-Modified
 
Connection:Keep-Alive/Close
 
1) keep-alive表示多个HTTP请求可共用一个TCP连接(持久连接)
2) HTTP 1.1默认是keep-alive
3) 持久连接可同时开启的数量,与浏览器有关
4) 持久连接维持的时间,在浏览器/注册表/web服务器都可设置
 
Transfer-Encoding: chunked
 
服务器一次返回下载内容时,head包含Content-Length参数
服务器分批返回缓冲内容时,head包含Transfer-Encoding参数。有的web服务器,只有超出下载内容缓冲区大小,才会用chunked方式
有Transfer-Encoding存在,则忽略Content-Length
posted @ 2015-07-28 22:53  蓼椮  阅读(253)  评论(0编辑  收藏  举报