响应头
如何保持http长连接
- Connection: keep-alive; 设置tcp长连接
在http1.1中使用pipeline技术,一个tcp连接的管道中发送多个http请求时。基于http的“对头阻塞”,返回的响应式串行的。
- Content-length;表明当前请求返回数据包的长度
- 那么每个请求返回响应头可以设置Content-length,区分每个响应的长度来识别每个请求对应返回的数据。
注意:若未使用pipeline或tcp长连接则可以不设置Content-length,因为当前一个tcp连接只给当前这一个请求提供服务,就没必要用Content-length来区分不同响应的数据。
- Transfer-Encodeing;表明返回的是数量未定的数据块
- 当服务端以stream的方式返回时需要设置Transfer-Encodeing:chunked;这样每个非空的数据块之前会有一个16进制的值,若遇到大小为0的数据块则表示本次的响应发送完了。
请求头
- Content-Type;请求提交的方式
- application/x-www-form-urlencoded,以post方式提交表单,格式为key1=value1&key2=value2
- multipart/form-data,以文件上传的方式提交表单
- application/json, 以json的方式提交数据
- text/xml, 以text/xml格式提交数据
-
accept;接受的数据格式
-
Content-range
缓存相关的请求和响应头
- 协商缓存
Etag / If-None-Match;采用hash算法根据资源内容生成Etag Last-Modified/I-fModified-since;资源被修改的时间,但无法区别资源1秒内修改的变化
- 强缓存
- Cache-Control
- no-cache;在浏览器使用缓存前,会往返对比 ETag,如果 ETag 没变,返回 304,则使用缓存
- no-store;彻底禁用缓冲
- max-age:缓存时长
- Expires
- cdn缓存
x-hit