HTTP协议的响应头,请求头详解

来源:互联网 发布:java集合有几种 编辑:程序博客网 时间:2024/05/16 07:03

1、HTTP请求

HTTP请求由三部分组成,请求行,消息报头,请求正文

http请求行以一个方法开头,以空格开头,后面跟着URI以及http协议版本,每行结尾使用回车和换行,CRLF标识回车换行

请求方法:

GET:请求获取URI所标识的资源

POST:在URI所标识的资源后附加新的数据

HEAD:请求获取由URI所标识的的资源的响应头信息

PUT:请求URI所标识的服务器存储一个资源

DELETE:请求服务器删除URI所表示的资源

TRACE:请求服务器回送收到的请求信息,用于测试或诊断

CONNECT:

OPTIONS:请求擦讯服务器的性能

eg:GET http://www.baidu.com/ HTTP1.0(CRLF)

完整请求实例:

  1. Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8CRLF
    Accept-Encoding:gzip, deflate, sdchCRLF
    Accept-Language:zh-CN,zh;q=0.8CRLF
    Connection:keep-aliveCRLF
    Cookie:CRLF
    Host:www.baidu.comCRLF
    Upgrade-Insecure-Requests:1CRLF
    User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36CRLF

2、请求报头:

允许客户端向服务器端传递附加信息

Accept:请求报头域用于指定客户端接收哪些类型的信息。如:Accept:image/gif,text/html

具体一点的类型查看http://tool.oschina.net/commons

Accept-Charset:请求报头域用于指定客户端接受的字符集,缺省表示任何字符集都可以接受

Accetpt-Encoding:指定浏览器可以支持的web服务器返回内容压缩编码类型。如:Accept-Encoding:gzip.deflate

Accept-Language:指定客户端可以接受的语言。  如:Accept-Language:zh-cn

Authorization:用于证明证明客户端有权查看某个资源

Cache-Control:指定所有缓存机制在整个 请求/响应链中必须服从的指令。

Cache-Control值:

Cache-directive打开一个新的浏览器窗口在原窗口中单击 Enter 按钮刷新单击 Back 按钮public浏览器呈现来自缓存的页面浏览器呈现来自缓存的页面浏览器重新发送请求到服务器浏览器呈现来自缓存的页面private浏览器重新发送请求到服务器第一次,浏览器重新发送请求到服务器;此后,浏览器呈现来自缓存的页面浏览器重新发送请求到服务器浏览器呈现来自缓存的页面no-cache/no-store浏览器重新发送请求到服务器浏览器重新发送请求到服务器浏览器重新发送请求到服务器浏览器重新发送请求到服务器must-revalidation/proxy-revalidation浏览器重新发送请求到服务器第一次,浏览器重新发送请求到服务器;此后,浏览器呈现来自缓存的页面浏览器重新发送请求到服务器浏览器呈现来自缓存的页面max-age=xxx (xxx is numeric)在 xxx 秒后,浏览器重新发送请求到服务器在 xxx 秒后,浏览器重新发送请求到服务器浏览器重新发送请求到服务器在 xxx 秒后,浏览器重新发送请求到服务器

Connection:表示是否需要持久连接,(HTTP1.1默认进行持久连接)。如:Connection:close,Connection:keep-Alive,表示持久连接

Cookie:HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发给web服务器

Content-Length:请求的内容长度

Content-Type:请求与实体对应的MIME信息

Date:请求发送的时间和日期

Host:指定请求的服务器的域名和端口号

Except:请求特定的服务器行为

If-Match:请求内容与实体相匹配才有效

If-Modified-Since:如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码

Pragma:用来包含特定的指令。如:Pragma: no-cache

Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面

User-Agent允许客户端将它的操作系统、浏览器和其它属性告诉服务器


3、响应报头


Location用于重定向接受者到一个新的位置

Accept-Charset:表明服务器是否支持指定范围请求及哪种类型的分段请求

Age:从原始服务器到代理缓存形成的估算时间(以秒计,非负

Allow:对某网络资源的有效的请求行为,不允许则返回405。如:Allow: GET, HEAD

Cache-Control:告诉所有的缓存机制是否可以缓存及哪种类型。如:Cache-Control: no-cache

Content-Encoding:web服务器支持的返回内容压缩编码类型。如:Content-Encoding: gzip

Content-Language:响应体的语言。如:Content-Language: en,zh

Content-Length:响应体的长度。如:Content-Length: 348

Content-Location:请求资源可替代的备用的另一地址。如:Content-Location: /index.htm

Content-MD5:返回资源的MD5校验值

Content-Range:在整个返回体中本部分的字节位置。如:Content-Range: bytes 21010-47021/47022

Content-Type:返回内容的MIME类型。如:Content-Type: text/html; charset=utf-8

Date:原始服务器消息发出的时间

Expires:响应过期的日期和时间。

Pragma:包括实现特定的指令,它可应用到响应链上的任何接收方。如:Pragma: no-cache

Proxy-Authenticate:它指出认证方案和可应用到代理的该URL上的参数。如:Proxy-Authenticate: Basic

refresh:表示浏览器应该在多少时间之后刷新文档,以秒记。如:response.setHeader("refresh","3"),实现页面每3s刷新一次;

response.setHeader("refresh","3;url='/a/index.html'"),实现3s刷新并跳转到指定的URl

Retry-After:如果实体暂时不可取,通知客户端在指定时间之后再次尝试。如:Retry-After: 120

Server:web服务器软件名称。如:Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)

Set-Cookie:设置Http Cookie

WWW-Authenticate:表明客户端请求实体应该使用的授权方案。如:WWW-Authenticate: Basic






1 0
原创粉丝点击