http協議
HTTP協議(HyperText Transfer Protocol,超文字傳輸協議)是因特網上應用最為廣泛的一種網路傳輸協議,所有的WWW檔案都必須遵守這個標準。
HTTP是一個基於TCP/IP通訊協議來傳遞資料(HTML 檔案, 圖片檔案, 查詢結果等
http報文
-
客戶端請求 request
客戶端傳送一個HTTP請求到伺服器的請求訊息包括以下格式:請求行(request line)、請求頭部(header)、空行和請求資料四個部分組成,下圖給出了請求報文的一般格式。-
格式
GET /hello.txt HTTP/1.1 User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Host: www.example.com Accept-Language: en, mi
-
-
服務端響應 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...