HTTP请求方法及请求头大全

Hypertext Transfer Protocol (HTTP) 协议

a stateless application-level request/response protocol that uses extensible semantics and self-descriptive message payloads for flexible interaction with network-based hypertext information systems (RFC7230 2014.6)

一种无状态的、应用层的、以请求/应答方式运行的协议,它使用可扩展的 语义和自描述消息格式,与基于网络的超文本信息系统灵活的互动

HTTP请求方法及请求头大全

ABNF (扩充巴科斯-瑙尔范式)操作符

• 空白字符:用来分隔定义中的各个元素

  • method SP request-target SP HTTP-version CRLF

• 选择 /:表示多个规则都是可供选择的规则

  • start-line = request-line / status-line

值范围 %c##-## :

  • OCTAL=“0”/“1”/“2”/“3”/“4”/“5”/“6”/“7”与OCTAL=%x30-37等价

序列组合 ():将规则组合起来,视为单个元素

不定量重复 m*n:

  • * 元素表示零个或更多元素: *( header-field CRLF )

  • 1* 元素表示一个或更多元素,2*4 元素表示两个至四个元素

可选序列 []:

  • [ message-body ]

HTTP请求方法及请求头大全

HTTP请求方法对照表

HTTP头字段(HTTP header fields),是指在超文本传输协议(HTTP)的请求和响应消息中的消息头部分

它们定义了一个超文本传输协议事务中的操作参数

HTTP头部字段可以自己根据需要定义,因此可能在 Web服务器和浏览器上发现非标准的头字段

下面是一个HTTP请求的请求头及响应头:

GET /home.html HTTP/1.1 
Host: chegva.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate, br 
Referer: https://developer.mozilla.org/testpage.html 
Connection: keep-alive 
Upgrade-Insecure-Requests: 1 
If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT 
If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a" 
Cache-Control: max-age=0
______________________________________________________________________________________

HTTP/1.1 200 OK
Access-Control-Allow-Headers: X-Requested-With
Access-Control-Allow-Methods: GET,POST,OPTIONS,HEAD
Access-Control-Allow-Origin: *
Cache-Control: no-store, no-cache, must-revalidate
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
Date: Sat, 22 Oct 2022 03:34:07 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Link: <https://chegva.com/wp-json/>; rel="https://api.w.org/"
Pragma: no-cache
Server: nginx
Set-Cookie: PHPSESSID=hs1aq8q7753rrfh8dkf607td2t; path=/
Strict-Transport-Security: max-age=31536000; includeSubdomains
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN

根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

HTTP Request Method共计15种

序号方法描述
1GET请求指定的页面信息,并返回实体主体。
2HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
3POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
4PUT从客户端向服务器传送的数据取代指定的文档的内容。
5DELETE请求服务器删除指定的页面。
6CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
7OPTIONS允许客户端查看服务器的性能。
8TRACE回显服务器收到的请求,主要用于测试或诊断。
9PATCH实体中包含一个表,表中说明与该URI所表示的原内容的区别。
10MOVE请求服务器将指定的页面移至另一个网络地址。
11COPY请求服务器将指定的页面拷贝至另一个网络地址。
12LINK请求服务器建立链接关系。
13UNLINK断开链接关系。
14WRAPPED允许客户端发送经过封装的请求。
15Extension-mothed在不改动协议的前提下,可增加另外的方法。

HTTP响应头和请求头信息对照表

HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。HTTP的头信息包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。

  • 通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。

  • 请求头标:允许客户端传递关于自身的信息和希望的响应形式。

  • 响应头标:服务器和于传递自身信息的响应。

  • 实体头标:定义被传送资源的信息。即可用于请求,也可用于响应。

根据以上分类的HTTP请求头介绍可以参考此文,本工具根据请求和输出分为Request和Response两部分。

HTTP Request Header 请求头

Header解释示例
Accept指定客户端能够接收的内容类型Accept: text/plain, text/html

Accept-Charset

浏览器可以接受的字符编码集。Accept-Charset: iso-8859-5
Accept-Encoding指定浏览器可以支持的web服务器返回内容压缩编码类型。Accept-Encoding: compress, gzip
Accept-Language浏览器可接受的语言Accept-Language: en,zh
Accept-Ranges可以请求网页实体的一个或者多个子范围字段Accept-Ranges: bytes
AuthorizationHTTP授权的授权证书Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control指定请求和响应遵循的缓存机制Cache-Control: no-cache
Connection表示是否需要持久连接。(HTTP 1.1默认进行持久连接)Connection: close
CookieHTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。Cookie: $Version=1; Skin=new;
Content-Length请求的内容长度Content-Length: 348
Content-Type请求的与实体对应的MIME信息Content-Type: application/x-www-form-urlencoded
Date请求发送的日期和时间Date: Tue, 15 Nov 2010 08:12:31 GMT
Expect请求的特定的服务器行为Expect: 100-continue
From发出请求的用户的EmailFrom: user@email.com
Host指定请求的服务器的域名和端口号Host: www.zcmhi.com
If-Match只有请求内容与实体相匹配才有效If-Match: “737060cd8c284d8af7ad3082f209582d”
If-Modified-Since如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT
If-None-Match如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变If-None-Match: “737060cd8c284d8af7ad3082f209582d”
If-Range如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。参数也为EtagIf-Range: “737060cd8c284d8af7ad3082f209582d”
If-Unmodified-Since只在实体在指定时间之后未被修改才请求成功If-Unmodified-Since: Sat, 29 Oct 2010 19:43:31 GMT
Max-Forwards限制信息通过代理和网关传送的时间Max-Forwards: 10
Pragma用来包含实现特定的指令Pragma: no-cache
Proxy-Authorization连接到代理的授权证书Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range只请求实体的一部分,指定范围Range: bytes=500-999
Referer先前网页的地址,当前请求网页紧随其后,即来路Referer: https://chegva.com/5526.html
TE客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息TE: trailers,deflate;q=0.5
Upgrade向服务器指定某种传输协议以便服务器进行转换(如果支持)Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
User-AgentUser-Agent的内容包含发出请求的用户信息User-Agent: Mozilla/5.0 (Linux; X11)
Via通知中间网关或代理服务器地址,通信协议Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning关于消息实体的警告信息Warn: 199 Miscellaneous warning

常见的非标准请求字段

字段名说明示例

X-Requested-With

主要用于标识 Ajax 及可扩展标记语言 请求。大部分的JavaScript框架会发送这个字段,且将其值设置为 XMLHttpRequestX-Requested-With: XMLHttpRequest
DNT请求某个网页应用程序停止跟踪某个用户。在火狐浏览器中,相当于X-Do-Not-Track协议头字段(自 Firefox/4.0 Beta 11 版开始支持)。SafariInternet Explorer 9 也支持这个字段。2011年3月7日,草案提交IETF。万维网协会 的跟踪保护工作组正在就此制作一项规范。DNT: 1 (DNT启用)
DNT: 0 (DNT被禁用)
X-Forwarded-For一个事实标准 ,用于标识某个通过超文本传输协议代理或负载均衡连接到某个网页服务器的客户端的原始互联网地址X-Forwarded-For: client1, proxy1, proxy2``X-Forwarded-For: 129.78.138.66, 129.78.64.103
X-Forwarded-Host一个事实标准 ,用于识别客户端原本发出的 Host 请求头部。X-Forwarded-Host: zh.wikipedia.org:80``X-Forwarded-Host: zh.wikipedia.org
X-Forwarded-Proto一个事实标准,用于标识某个超文本传输协议请求最初所使用的协议。X-Forwarded-Proto: https
Front-End-Https被微软的服务器和负载均衡器所使用的非标准头部字段。Front-End-Https: on
X-Http-Method-Override请求某个网页应用程序使用该协议头字段中指定的方法(一般是PUT或DELETE)来覆盖掉在请求中所指定的方法(一般是POST)。当某个浏览器或防火墙阻止直接发送PUT 或DELETE 方法时(注意,这可能是因为软件中的某个漏洞,因而需要修复,也可能是因为某个配置选项就是如此要求的,因而不应当设法绕过),可使用这种方式。X-HTTP-Method-Override: DELETE
X-ATT-DeviceId使服务器更容易解读AT&T设备User-Agent字段中常见的设备型号、固件信息。X-Att-Deviceid: GT-P7320/P7320XXLPG
X-Wap-Profile链接到互联网上的一个XML文件,其完整、仔细地描述了正在连接的设备。右侧以为AT&T Samsung Galaxy S2提供的XML文件为例。x-wap-profile: http://wap.samsungmobile.com/uaprof/SGH-I777.xml
Proxy-Connection该字段源于早期超文本传输协议版本实现中的错误。与标准的连接(Connection)字段的功能完全相同。Proxy-Connection: keep-alive
X-Csrf-Token用于防止 跨站请求伪造。 辅助用的头部有 X-CSRFTokenX-XSRF-TOKENX-Csrf-Token: i8XNjC4b8KVok4uw5RftR38Wgp2BFwql

HTTP Responses Header 响应头

Header解释示例
Accept-Ranges表明服务器是否支持指定范围请求及哪种类型的分段请求Accept-Ranges: bytes
Age从原始服务器到代理缓存形成的估算时间(以秒计,非负)Age: 12
Allow对某网络资源的有效的请求行为,不允许则返回405Allow: GET, HEAD
Cache-Control告诉所有的缓存机制是否可以缓存及哪种类型Cache-Control: no-cache
Content-Encodingweb服务器支持的返回内容压缩编码类型。Content-Encoding: gzip
Content-Language响应体的语言Content-Language: en,zh
Content-Length响应体的长度Content-Length: 348
Content-Location请求资源可替代的备用的另一地址Content-Location: /index.htm
Content-MD5返回资源的MD5校验值Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Range在整个返回体中本部分的字节位置Content-Range: bytes 21010-47021/47022
Content-Type返回内容的MIME类型Content-Type: text/html; charset=utf-8
Date原始服务器消息发出的时间Date: Tue, 15 Nov 2010 08:12:31 GMT
ETag请求变量的实体标签的当前值ETag: “737060cd8c284d8af7ad3082f209582d”
Expires响应过期的日期和时间Expires: Thu, 01 Dec 2010 16:00:00 GMT
Last-Modified请求资源的最后修改时间Last-Modified: Tue, 15 Nov 2010 12:45:26 GMT
Location用来重定向接收方到非请求URL的位置来完成请求或标识新的资源Location: http://www.zcmhi.com/archives/94.html
Pragma包括实现特定的指令,它可应用到响应链上的任何接收方Pragma: no-cache
Proxy-Authenticate它指出认证方案和可应用到代理的该URL上的参数Proxy-Authenticate: Basic
refresh应用于重定向或一个新的资源被创造,在5秒之后重定向(由网景提出,被大部分浏览器支持)Refresh: 5; url=http://www.zcmhi.com/archives/94.html
Retry-After如果实体暂时不可取,通知客户端在指定时间之后再次尝试Retry-After: 120
Serverweb服务器软件名称Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Set-Cookie设置Http CookieSet-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
Trailer指出头域在分块传输编码的尾部存在Trailer: Max-Forwards
Transfer-Encoding文件传输编码Transfer-Encoding:chunked
Vary告诉下游代理是使用缓存响应还是从原始服务器请求Vary: *
Via告知代理客户端响应是通过哪里发送的Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning警告实体可能存在的问题Warning: 199 Miscellaneous warning
WWW-Authenticate表明客户端请求实体应该使用的授权方案WWW-Authenticate: Basic
X-Frame-Options点击劫持保护:
  • deny:该页面不允许在 frame 中展示,即使是同域名内。

  • sameorigin:该页面允许同域名内在 frame 中展示。

  • allow-from uri:该页面允许在指定uri的 frame 中展示。

  • allowall:允许任意位置的frame显示,非标准值。

X-Frame-Options: deny

常见的非标准回应字段

字段名说明示例
X-XSS-Protection跨站脚本攻击 (XSS)过滤器X-XSS-Protection: 1; mode=block
Content-Security-Policy, X-Content-Security-Policy, X-WebKit-CSP内容安全策略定义。X-WebKit-CSP: default-src 'self'
X-Content-Type-Options唯一允许的数值为"nosniff",防止 Internet Explorer 对文件进行MIME类型嗅探。这也对 Google Chrome 下载扩展时适用。X-Content-Type-Options: nosniff
X-Powered-By表明用于支持当前网页应用程序的技术(例如:PHP)(版本号细节通常放置在 X-Runtime 或 X-Version 中)X-Powered-By: PHP/5.4.0
X-UA-Compatible推荐指定的渲染引擎(通常是向后兼容模式)来显示内容。也用于激活 Internet Explorer 中的 Chrome FrameX-UA-Compatible: IE=EmulateIE7 X-UA-Compatible: IE=edge X-UA-Compatible: Chrome=1
X-Content-Duration指出音视频的长度,单位为秒。只受Gecko内核浏览器支持。X-Content-Duration: 42.666
Feature-Policy管控特定应用程序接口Feature-Policy: vibrate 'none'; geolocation 'none'
Permissions-Policy管控特定应用程序接口为W3C标准 替代Feature-PolicyPermissions-Policy: microphone=(),geolocation=(),camera=()
X-Permitted-Cross-Domain-PoliciesFlash的跨网站攻击防御X-Permitted-Cross-Domain-Policies: none
Referrer-Policy保护信息泄漏Referrer-Policy: origin-when-cross-origin
Expect-CT防止欺骗 SSL,单位为秒Expect-CT: max-age=31536000, enforce

参考:


anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/5526.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注