Http Header 详解

Request Header

line1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:

Method Request-URI HTTP-Version CRLF
eg: GET /index.html HTTP/1.1

#请求方法:

GET     请求获取Request-URI所标识的资源
POST    在Request-URI所标识的资源后附加新的数据、常用于提交表单
HEAD    请求获取由Request-URI所标识的资源的响应消息报头
PUT     请求服务器存储一个资源,并用Request-URI作为其标识
DELETE  请求服务器删除Request-URI所标识的资源
TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

line2、Host: blog.csdn.net

host 属性是一个可读可写的字符串,可设置或返回当前 URL 的主机名称和端口号。

line3、Connection: keep-alive

默认保持连接,除非在请求头或响应头中指明要关闭:Connection: Close

line4、Cache-Control: max-age=0

Cache-Control: no-cache — 强制每次请求直接发送给源服务器
max-age>0 时 直接从游览器缓存中 提取 
max-age<=0 时 向server 发送http 请求确认 ,该资源是否有修改有的话 返回200 ,无的话 返回304. 

line5、Upgrade-Insecure-Requests: 1

对于resopnse Header该指令用于让浏览器自动升级请求从http到https,用于大量包含http资源的http网页直接升级到https而不会报错.简洁的来讲,就相当于在http和https之间起的一个过渡作用.
浏览器的请求头出现的Upgrade-Insecure-Requests:1 则是告诉服务器,自己支持这种操作,也就是我能读懂你服务器发过来的上面这条信息,并且在以后发请求的时候不用http而用https.

line6、User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36

userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。
一般来讲,它是在 navigator.appCodeName 的值之后加上斜线和 navigator.appVersion 的值构成的。
例如:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)。

line7、Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8

指定客户端能够接收的内容类型

line8、Accept-Encoding: gzip, deflate, sdch

指定浏览器可以支持的web服务器返回内容压缩编码类型。

line9、Accept-Language: zh-CN,zh;q=0.8

    浏览器可接受的语言

line10、Cookie: bdshare_firstime=1477555896273; dc_session_id=1479020585440

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

Response Header

line1、HTTP/1.1 200 OK

协议/版本 状态码 OK 

# 状态码

1xx
    100 -- Continue
2xx
    200 -- 成功
3xx
    301 -- (永久移动)请求的网页已永久移动到新的位置,当服务器返回此响应(作为一个GET或HEAD请求的响应),它会自动转发请求到新的位置。
    302 -- (临时移动)服务器正在响应请求,从不同位置的网页,但请求者应继续使用原来的位置,为将来的请求。
4xx
    400 -- (错误请求),服务器不理解请求的语法。
    403 -- (禁止),服务器拒绝请求。
    404 -- (未找到),服务器找不到请求的页面。
5xx
    500 -- (内部服务器错误),服务器遇到了一个错误,并不能满足要求。
    503 -- (服务不可用),服务器目前无法使用(因为它是重载维修或向下),一般来说,这是一个临时的状态。

line2、Server: openresty

web服务器软件名称

line3、Date: Sun, 13 Nov 2016 07:04:41 GMT

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

line4、Content-Type: text/html; charset=utf-8

返回内容的MIME类型

#MIME

MIME意为多目Internet邮件扩展,它设计的最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。然而当它被HTTP协议支持之后,它的意义就更为显著了。它使得HTTP传输的不仅是普通的文本,而变得丰富多彩。
每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。

常见的MIME类型:
超文本标记语言文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .ipeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar

Internet 中有一个专门组织IANA来确认标准的MIME类型,但Internet发展的太快,很多应用程序等不及IANA来确认他们使用的 MIME类型为标准类 型。因此他们使用在类别中以x-开头的方法标识这个类别还没有成为标准,例如:x-gzip,x-tar等。

line5、Transfer-Encoding: chunked

文件传输编码

line6、Connection: keep-alive

默认保持连接,除非在请求头或响应头中指明要关闭:Connection: Close

line7、Keep-Alive: timeout=20

表示这个TCP通道可以保持20秒。另外还可能有max=XXX,表示这个长连接最多接收XXX次请求就断开。对于客户端来说,如果服务器没有告诉客户端超时时间也没关系,服务端可能主动发起四次握手断开TCP连接,客户端能够知道该TCP连接已经无效;另外TCP还有心跳包来检测当前连接是否还活着,方法很多,避免浪费资源。

line8、Vary: Accept-Encoding

指定“Vary: Accept-Encoding”标头,用一句话来说明它的意义,就是“告诉代理服务器缓存两种版本的资源:压缩和非压缩,这有助于避免一些公共代理不能正确地检测Content-Encoding标头的问题。

#Source这是一个比较清楚的解释

line9、Cache-Control: private

告诉所有的缓存机制是否可以缓存及哪种类型

line10、Content-Encoding: gzip

web服务器支持的返回内容压缩编码类型。

Example

Request Header

GET / HTTP/1.1
Host: blog.csdn.net
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie: bdshare_firstime=1477555896273; dc_session_id=1479020585440


Response Header

HTTP/1.1 200 OK
Server: openresty
Date: Sun, 13 Nov 2016 07:04:41 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=20
Vary: Accept-Encoding
Cache-Control: private
Content-Encoding: gzip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值