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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012935755/article/details/51861514

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






没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭