(一)HTTP協議是什么
1、HTTP協議是超文本傳輸協議,也就是 HyperText Transfer Protocol,
2、HTTP是一個用在計算機世界里的協議,它使用計算機能夠理解的語言確立了一種計算機之間交流通信的規范,以及相關的各種控制和錯誤處理方式,(協議)
3、HTTP是一個在計算機世界里專門用來兩點之間傳輸資料的約定和規范 (傳輸)
總結:
HTTP是一個在計算機世界兩點之間傳輸文字、圖片、音頻、視頻等超文本資料的約定和規范, (這里的兩點指:1、服務器和服務器之間 2、瀏覽器和服務器之間)
(二)CDN
瀏覽器通常不會直接連到服務器,中間會經過“重重關卡”,其中的一個重要角色就叫做 CDN,
CDN,全稱是“Content Delivery Network”,翻譯過來就是“內容分發網路”,它應用了 HTTP 協議里的快取和代理技術,代替源站回應客戶端的請求,
(三)HTML
HTML是HTTP協議傳輸的主要內容之一,它描述了超文本頁面,用各種“標簽”定義文字、圖片等資源和排版布局,最終由瀏覽器“渲染”出可視化頁面,
(四)Web Service
Web Service 是一種由 W3C 定義的應用服務開發規范,使用 client-server 主從架構,通常使用 WSDL 定義服務介面,使用 HTTP 協議傳輸 XML 或 SOAP 訊息,也就是說,它是一個基于 Web(HTTP)的服務架構技術,既可以運行在內網,也可以在適當保護后運行在外網,(它是一個基于 Web(HTTP)的服務架構技術)
因為采用了 HTTP 協議傳輸資料,所以在 Web Service 架構里服務器和客戶端可以采用不同的作業系統或編程語言開發,例如服務器端用 Linux+Java,客戶端用 Windows+C#,具有跨平臺跨語言的優點,
(五)與HTTP相關的協議
1、TCP/IP 協議
TCP/IP 協議實際上是一系列網路通信協議的統稱,其中最核心的兩個協議是 TCP 和 IP,其他的還有 UDP、ICMP、ARP 等等,共同構成了一個復雜但有層次的協議堆疊,
2、DNS
(1)“域名系統”(Domain Name System)用有意義的名字來作為 IP 地址的等價替代,
(2)在DNS中,”域名“又被稱為”主機名“(Host)
(3) DNS用.分隔成多個單詞,級別從左到右逐級升高,最右邊的被稱為”頂級域名“,例如:代表商業公司的”com"、表示教育機構的“edu”等,
(4)想要使用 TCP/IP 協議來通信仍然要使用 IP 地址,所以需要把域名做一個轉換,“映射”到它的真實 IP,這就是所謂的“域名決議”,
3、URI/URL
URI(Uniform Resource Identifier),中文名稱是 統一資源識別符號,使用它就能夠唯一地標記互聯網上資源,
URI 另一個更常用的表現形式是 URL(Uniform Resource Locator), 統一資源定位符,也就是我們俗稱的“網址”,它實際上是 URI 的一個子集,不過因為這兩者幾乎是相同的,差異不大,所以通常不會做嚴格的區分,
例如:https://www.cnblogs.com/simple-free/p/12901831.html
可以看到,URI 主要有三個基本的部分構成:
(1)、協議名:即訪問該資源應當使用的協議,在這里是“https”;
(2)、主機名:即互聯網上主機的標記,可以是域名或 IP 地址,在這里是“www.cnblogs.com”;
(3)、路徑:即資源在主機上的位置,使用“/”分隔多級目錄,在這里是“/simple-free/p/12901831.html”,
4、HTTPS
HTTPS是運行在SSL/TLS協議上的HTTP,相當于“HTTP+SSL/TLS+TCP/IP”
SSL 的全稱是“Secure Socket Layer”,由網景公司發明,當發展到 3.0 時被標準化,改名為 TLS,即“Transport Layer Security”,但由于歷史的原因還是有很多人稱之為 SSL/TLS,或者直接簡稱為 SSL,
5、代理
代理(proxy)是HTTP協議中請求方和應答方中間的一個環節,作為“中轉站”,既可以轉發客戶端的請求,也可以轉發服務器的應答,
(六)域名決議
www.cnblogs.com :
1、com:頂級域名
2、cnblogs:二級域名
3、www:主機名
例如現在要訪問 www.cnblogs.com ,域名決議程序為:
1、訪問根域名服務器,它會告訴你“com”頂級域名服務器的地址;
2、訪問“com”頂級域名服務器,它再告訴你“cnblogs.com ”域名服務器的地址;
3、最后訪問“apple.com”域名服務器,就得到了“www.cnblogs.com ”的地址,
DNS 是一個樹狀的分布式查詢系統,但為了提高查詢效率,外圍有多級的快取;所以更具體的說,域名決議程序應該是:
1、查找瀏覽器DNS快取
2、查找作業系統DNS快取
3、在hosts檔案中查找域名記錄
4、在一些大公司、網路運營商的DNS快取中去查找(非權威域名服務器)
5、都不存在再根據上述步驟進行決議
即:瀏覽器快取->作業系統dnscache ->hosts檔案->非權威域名服務器->根域名服務器->頂級域名服務器->二級域名服務器->權威域名服務器,
(七) 鍵入網址,按下回車發生了什么
如果網址的主機部分是IP地址:
1、建立與web服務器的TCP連接:瀏覽器依照TCP協議的規范,使用“三次握手”建立與web服務器的連接 (經過SYN、SYN/ACK、ACK三個包)
2、HTTP協議開始作業:瀏覽器按照HTTP協議的格式,通過 TCP 發送 HTTP的請求報文
3、WEB服務器回復:在 TCP 協議層面確認:“剛才的報文我已經收到了”,不過這個 TCP 包 HTTP 協議是看不見的,
4、WEB服務器決議報文并回復:
(1)依據HTTP協議的規定,決議報文,看瀏覽器發送的請求是想做什么
(2)根據請求的需要進行處理,再拼成符合HTTP格式的報文發回給客戶端,
5、瀏覽器回復:瀏覽器也要給服務器回復一個 TCP 的 ACK 確認,“你的回應報文收到了,多謝”
6、瀏覽器決議報文:呼叫JS引擎、排版引擎等進行處理,渲染成我們看到的頁面,
如果網址的主機部分是域名:那么就會多一個域名決議程序,根據上面的步驟,找到域名對應的IP地址后,再通過“三次握手”建立TCP連接等等,
(八)HTTP協議報文
1、起始行(start line):描述請求或回應的基本資訊;
2、頭部欄位集合(header):使用 key-value 形式更詳細地說明報文;
3、訊息正文(entity):實際傳輸的資料,它不一定是純文本,可以是圖片、視頻等二進制資料,
前兩部分起始行和頭部欄位經常又合稱為“請求頭”或“回應頭”,訊息正文又稱為“物體”,但與“header”對應,很多時候就直接稱為“body”,
HTTP 協議規定報文必須有 header,但可以沒有 body,而且在 header 之后必須要有一個“空行”,也就是“CRLF”,十六進制的“0D0A”,
(九)URI的組成
scheme :// host:port path ? query, 例如:https://zzk.cnblogs.com/s?t=b&w=ce
scheme: 協議名或方案名,如HTPP/HTTPS/FTP等
host:port: 資源所在主機名,通常是主機名+埠號
path: 標記資源所在位置
query:多個key=value的格式,以“&”符號連接
(十)HTTP協議請求方法
1、GET:獲取資源,可以理解為讀取或者下載資料;
2、HEAD:獲取資源的元資訊;
3、POST:向資源提交資料,相當于寫入或上傳資料;
4、PUT:類似 POST;
5、DELETE:洗掉資源;
6、CONNECT:建立特殊的連接隧道;
7、OPTIONS:列出可對資源實行的方法;
8、TRACE:追蹤請求 - 回應的傳輸路徑,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/41104.html
標籤:其他
上一篇:MySQL8離線安裝
