-
關于Nginx的一些你不得不知道的内容(HTTP協定基礎知識),内容比較多建議收藏哦HTTP協定基礎知識
HTTP協定基礎知識
1. IP 和端口
IP是配置設定給網卡的位址,用來找到網絡上的一台裝置,實作互相通信。
IP的格式是四個8位的二進制整數,可以轉換成0-255的十進制數字。
因為接入網絡的裝置越來越多,IPV4不夠用了,是以現在又誕生了 IPV6。
隻有IP還不夠,因為一個裝置上運作的程式很多,如果要找到指定的程式,必須給
每個程式配置設定一個端口。端口的範圍是0到65535。
比如FTP服務的21端口,HTTP服務的80端口, MySQL預設3306端口,Redis默
認6379端口。
2.URL的組成?
因為IP端口對于使用者來說非常難以識别和記憶,是以我們又發明了域名(Domain Name) o因為域名是唯一的,而且會包含一些特殊含義,域名資源也非常珍貴,早年就 有人靠炒域名發了家。
我們在浏覽器輸入域名,就會自動地轉換成IP,通路到相應的伺服器。這個把域名 轉換成IP的系統叫做DNS (Domain Name Server),域名解析服務。
URL的格式:
https://www. baidu.com
https://map.baidu.com
包括幾項:
協定,比如FTP、HTTP、HTTPS等等。
子域名,頂級域名的字首,其實WWW就是一個約定俗成的二級域名,也叫子域名, 子域名可以有多級,比如QQ空間的位址,就是二級子域名:
https://user.qzone.qq.com/694100510域名類型,比如.com、.net、・cn等等,是不同的組織機構管理的。
端口号,如果不寫的話就是預設端口,比如HTTP的80端口,HTTPS的443端口。 後面就是資源路徑和參數。
3.HTTP協定有什麼特點?
簡單快速:格式簡單,通信快速
靈活:傳輸資料類型豐富
無連接配接:收到應答斷開連接配接
無狀态:不需要先前的資訊,cookie, sessiono
4.HTTP協定的請求格式是什麼樣的?
主要包括:請求行(request line).請求頭(header) s空行和請求資料
GET /item/bobo/23753047?fr-aladdin HTTP/1.1
Host: baike.baidu.com
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/57.0.2987.98 Safan/537.36 LBBROWSER
Accept: text/htmLapplication/xhtml+xmLapplication/xml;q=0.9,image/webp,*/*;q=0.8
Refer er: https://www.baidu.com/link?url=WiJWxlZKtr&wd=&eqid=86b000
Accept-Encoding: gzip, deflate, sdch, br
Accept-Laiiguage: zh-CN,zh;q=0.8
Cookie: BAIKE_SHITONG=%7B%22dBAIA18d7c93a=1609302264
body沒寫,POST會攜帶請求資料。
5.HTTP協定的請求類型有哪些?
- GET:請求指定的頁面資訊,并傳回實體主體。
- HEAD:類似于GET請求,隻不過傳回的響應中沒有具體的内容,用于擷取報頭。
- POST:向指定資源送出資料進行處理請求,資料被包含在請求體中。
- PUT:從用戶端向伺服器傳送的資料取代指定的文檔的内容。
- DELETE:請求伺服器删除指定的頁面。
- CONNECT: HTTP/1.1協定中預留給能夠将連接配接改為管道方式的代理伺服器。
- OPTIONS:允許用戶端檢視伺服器的性能。
- TRACE:回顯伺服器收到的請求,主要用于測試或診斷。
6.HTTP協定的響應格式是什麼樣的?
主要包括:狀态行、消息頭、空行和響應正文
HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding: deflate
Content-Security-Policy-Report-Only: default-src https: Unsafe-inline1 iinsafe-evaf data: blob: ; report-uri https://reports.baidu.com/cspTeport/baike
Content-Type: text/html; charset=UTF-8
Date: Wed, 30 Dec 2020 04:57:22 GMT
Server: Apache
Set-Cookie:BDUSS_BFESS=ZoWHk4VlQxVllseGs5dXVary: Accept-Encoding
Transfer-Encoding: chunked
響應的body省略。
7. HTTP格式響應狀态碼有哪些?
響應碼 | 類型 | 含義 |
1XX | Informational (資訊性狀态碼) | 收的請求正在處理 |
2XX | Success (成功狀态碼) | 請求正常處理完畢 |
3XX | Redirection (重定向狀态碼) | 需要進行附加操作以完成請求 |
4XX | Client Error (用戶端錯誤狀态碼) | 伺服器無法處理請求 |
5XX | Server Error (伺服器錯誤狀态碼) | 伺服器處理請求出錯 |
8.請求、響應的Header字段有哪些?
https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html通用Header字段
字段 | |
Cache-Control | 控制緩存的行為 |
Connection | 控制不再轉發給代理的首部字段、管理持久連接配接 |
Date | 建立封包的日期時間 |
Pragma | 封包指令 |
Trailer | 封包末端的首部一覽 |
Transfer-Encoding | 指定封包主體的傳輸編碼方式 |
Upgrade | 更新為其他協定 |
Via | 代理伺服器的相關資訊 |
Warning | 錯誤通知 |
請求Header字段
Accept | 使用者代理可處理的媒, | 本類型 |
Accept-Charset | 優先的字元集 | |
Accept-Encoding | 優先的内容編碼 | |
Accept-Language | 優先的語言(自然語言) | |
Authorization | Web認證資訊 | |
Expect | 期待伺服器的特定行為 | |
From | 使用者的電子郵箱位址 | |
Host | 請求資源所在伺服器 | |
If-Match | 比較實體标記(ETag) | |
If-Modified-Since | 比較資源的更新時間 | |
If-None-Match | 比較實體标記(與If-Match相反) | |
If-Range | 資源未更新時發送實, | '本Byte的範圍請求 |
If-Unmodified-Since | 比較資源的更新時間(與If-Modified-Since相反) | |
Max-Forwards | 最大傳輸逐跳數 | |
Proxy-Authorization | 代理伺服器要求用戶端的認證資訊 | |
Range | 實4 | 本的位元組範圍請求 |
Referer | ||
TE | 傳輸編碼的優先級 | |
User-Agent | HTTP用戶端程式的資訊 |
響應頭 Header
Accept-Ranges | 是否接受位元組範圍請求 |
Age | 推算資源建立經過時間 |
ETag | 資源的比對資訊 |
Location | 令用戶端重定向至指定URI |
Proxy-Authenticate | 代理伺服器對用戶端的認證資訊 |
Retry-After | 對再次發起請求的時機要求 |
Server | HTTP伺服器的安裝資訊 |
Vary | 代理伺服器緩存的管理資訊 |
WWW-Authenticate | 伺服器對用戶端的認證資訊 |
實體 Header
請求消息和響應消息都可以包含實體資訊。
Allow | 資源可支援的HTTP方法 |
Content-Encoding | 實體主體适用的編碼方式 |
Content-Language | 實體主體的自然語言 |
Content-Length | 實體主體的大小 |
Content-Location | 替代對應資源的URI |
Content-MD5 | 實體主體的封包摘要 |
Content-Range | 實體主體的位置範圍 |
Content-Type | 實體主體的媒體類型 |
Expires | 實體主體過期的日期時間 |
Last-Modified | 資源的最後修改日期時間 |
好了這塊内容就給大家講解到這兒,下篇開始講解Nginx的安裝操作!!!