HTTP解析

常见的Http请求头和响应头

  请求头

请求头                      说 明          
Accept-Charset用于指定客户端接受的字符集
Accept-Encoding用于指定可接受的内容编码,如Accept-Encoding:gzip.deflate
Accept-Language用于指定一种自然语言,如Accept-Language:zh-cn
Host用于指定被请求资源的Internet主机和端口号,如Host:www.baidu.com
User-Agent客户端将它的操作系统、浏览器和其他属性告诉服务器
Connection当前连接是否保持,如Connection:Keep-Alive

响应头

响应头说   明
Server使用的服务器名称,如Server:Apache/1.3.6(Unix)
Content-Type用来指定发送给接收者的实体正文的媒体类型,如
Content-Encoding与请求报头Accept-Encoding对应,告诉浏览器服务端采用的是什么压缩编码
Content-Language描述了资源所用的自然语言,与Accept-Language对应
Content-Length指明实体正文的长度,用以字节方式存储的十进制数字来表示
Keep-Alive保持连接的实践,如Keep-Alive:timeout=5,max=120

常见的Http状态码

状态码说  明
200客户端请求成功
302临时跳转,跳转地址通过Location指定
400客户端请求又语法错误,不能被服务器识别
403服务器收到请求,但是拒绝服务
404请求资源不存在
500服务器发生不可预期的错误




部分配置项

  1. Cache-Control/Program

这个Http Head字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令,如果知道该页面是否为缓存,不仅可以控制浏览器,还可以控制和Http相关的缓存或代理服务器。HTTP Head字段有一些可选值,这些值及其说明

可选值 说明
Public所有内容都将被缓存,在响应头中设置
private内容只缓存到私有缓存中,在响应头中设置
no-cache所有内容都不会被缓存,在请求头和响应头中设置
no-store所有内容都不会被缓存到缓存或Internet临时文件中,在响应头中设置
must-revalidation/proxy-revalidation如果缓存的内容失效,请求必须发送到服务器/代理以进行重新验证,在请求头中设置
max-age=xxx缓存的内容将在xxx秒后失效,这个选项只在HTTP1.1中可用,和Last-Modified一起使用时优先级较高,在响应头中设置

        Cache-Control请求字段被各个浏览器支持得较好,而且它的优先级也比较高,它和其他一些请求字段(如Expires)同时出现时,Cache-Control会覆盖其他字段。

        Pragma字段的作用和Cache-Control有点类似,它也是在Http头中包含一个特殊的指令,使相关的服务器遵守该指令,最常用得就是Pragma:no-cache,它和Cache-Control:no-cache得作用是一样的。

2.Expires

Expires通常的使用格式Expires:Sat,25 Feb 2012 12:22:17 GMT,后面跟着一个日期和时间,超过这个时间值后,缓存的内容将失效,也就是浏览器在发生请求之前检查这个页面的这个字段,看该页面是否已经过期了,过期了就重新向服务器发起请求。

3.Last-Modified/Etag

Last-Modified字段一般用于表示一个服务器上的资源的最后修改时间,静态资源(自动加上Last-Modified字段)或者动态(Servlet提供一个getLastModified方法用于检查某个动态内容是否更新),通过这个最后修改时间可以判断当前请求的资源是否是最新的。

一般情况下响应头中返回一个Last-Modified字段,浏览器再次请求时请求头中增加一个If-Modified-Since,询问服务器是否最新,若是返回304。

4.Etag

作用跟Last-Modified相似,为每个资源页面分配一个唯一编号。但后台处理繁琐

 

 

 

 

   

 

 

 

转载于:https://my.oschina.net/u/3230371/blog/1527961

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值