http协议
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等
http报文
客户端请求 request
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。
服务端响应 response
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。
格式
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain
http头部
HTTP 消息头允许客户端和服务器通过 request和 response传递附加信息。一个请求头由名称(不区分大小写)后跟一个冒号“:”,冒号后跟具体的值(不带换行符)组成。该值前面的引导空白会被忽略。
自定专用消息头可通过'X-' 前缀来添加;但是这种用法被IETF在2012年6月发布的 RFC5548 中明确弃用,原因是其会在非标准字段成为标准时造成不便;其他的消息头在 IANA 注册表 中列出, 其原始内容在 RFC 4229 中定义。 此外,IANA 还维护着被提议的新HTTP 消息头注册表.
根据不同上下文,可将消息头分为:
一般头: 同时适用于请求和响应消息,但与最终消息主体中传输的数据无关的消息头。
请求头: 包含更多有关要获取的资源或客户端本身信息的消息头。
响应头: 包含有关响应的补充信息,如其位置或服务器本身(名称和版本等)的消息头。
实体头: 包含有关实体主体的更多信息,比如主体长(Content-Length)度或其MIME类型。
头部值如下:
- Accept
告诉WEB服务器自己接受什么介质类型,/ 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。 - Accept-Charset
浏览器申明自己接收的字符集 - Accept-Encoding
浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate) - Accept-Language
浏览器申明自己接收的语言
语言跟字符集的区别:中文是语言,中文有多种字符集,比如big5,gb2312,gbk等等。
- Accept-Ranges
WEB服务器表明自己是否接受获取其某个实体的一部分(比如文件的一部分)的请求。bytes:表示接受,none:表示不接受。 - Access-Control-Allow-Credentials
- Access-Control-Allow-Headers
- Access-Control-Allow-Methods
- Access-Control-Allow-Origin
- Access-Control-Expose-Headers
- Access-Control-Max-Age
- Access-Control-Request-Headers
- Access-Control-Request-Method
- Age
- Allow
- Alt-Svc [我来译!]
- Authorization
- Cache-Control
- Clear-Site-Data
- Connection
- Content-Disposition
- Content-Encoding
- Content-Language
- Content-Length
- Content-Location
- Content-Range
- Content-Security-Policy
- Content-Security-Policy-Report-Only
- Content-Type
- Cookie
- Cookie2
- DNT
- Date
- ETag
- Early-Data [我来译!]
- Expect
- Expect-CT
- Expires
- Feature-Policy [我来译!]
- Forwarded
- From
- Host
- If-Match
- If-Modified-Since
- If-None-Match
- If-Range
- If-Unmodified-Since
- Index [我来译!]
- Keep-Alive
- Large-Allocation
- Last-Modified
- Location
- Origin
- Pragma
- Proxy-Authenticate
- Proxy-Authorization
- Public-Key-Pins
- Public-Key-Pins-Report-Only
- Range
- Referer
- Referrer-Policy
- Retry-After
- Sec-WebSocket-Accept [我来译!]
- Server
- Server-Timing [我来译!]
- Set-Cookie
- Set-Cookie2
- SourceMap
- HTTP Strict Transport Security
- TE
- Timing-Allow-Origin
- Tk
- Trailer
- Transfer-Encoding
- Upgrade-Insecure-Requests
- User-Agent
- Vary
- Via
- WWW-Authenticate
- Warning
- X-Content-Type-Options
- DNS 预读取
- X-Forwarded-For
- X-Forwarded-Host
- X-Forwarded-Proto
- X-Frame-Options 响应头
- X-XSS-Protection
https://www.jianshu.com/p/6e8...
https://www.cnblogs.com/s3131...