(一)HTTP協議是什麼html
一、HTTP協議是超文本傳輸協議,也就是 HyperText Transfer Protocol。
二、HTTP是一個用在計算機世界裏的協議。它使用計算機可以理解的語言確立了一種計算機之間交流通訊的規範,以及相關的各類控制和錯誤處理方式。(協議)
三、HTTP是一個在計算機世界裏專門用來兩點之間傳輸數據的約定和規範 (傳輸)web
總結:
HTTP是一個在計算機世界兩點之間傳輸文字、圖片、音頻、視頻等超文本數據的約定和規範。 (這裏的兩點指:一、服務器和服務器之間 二、瀏覽器和服務器之間)編程
(二)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)的服務架構技術)app
由於採用了 HTTP 協議傳輸數據,因此在 Web Service 架構裏服務器和客戶端能夠採用不一樣的操做系統或編程語言開發。例如服務器端用 Linux+Java,客戶端用 Windows+C#,具備跨平臺跨語言的優勢。編程語言
(五)與HTTP相關的協議
一、TCP/IP 協議
TCP/IP 協議其實是一系列網絡通訊協議的統稱,其中最核心的兩個協議是 TCP 和 IP,其餘的還有 UDP、ICMP、ARP 等等,共同構成了一個複雜但有層次的協議棧。
二、DNS
(1)「域名系統」(Domain Name System)用有意義的名字來做爲 IP 地址的等價替代。
(2)在DNS中,」域名「又被稱爲」主機名「(Host)
(3) DNS用.分隔成多個單詞,級別從左到右逐級升高,最右邊的被稱爲」頂級域名「。例如:表明商業公司的」com"、表示教育機構的「edu」等。
(4)想要使用 TCP/IP 協議來通訊仍然要使用 IP 地址,因此須要把域名作一個轉換,「映射」到它的真實 IP,這就是所謂的「域名解析」。
三、URI/URL
URI(Uniform Resource Identifier),中文名稱是 統一資源標識符,使用它就可以惟一地標記互聯網上資源。
URI 另外一個更經常使用的表現形式是 URL(Uniform Resource Locator), 統一資源定位符,也就是咱們俗稱的「網址」,它其實是 URI 的一個子集,不過由於這二者幾乎是相同的,差別不大,因此一般不會作嚴格的區分。
例如:http://www.javashuo.com/article/p-sptbvwgy-nt.html
能夠看到,URI 主要有三個基本的部分構成:
(1)、協議名:即訪問該資源應當使用的協議,在這裏是「https」;
(2)、主機名:即互聯網上主機的標記,能夠是域名或 IP 地址,在這裏是「www.cnblogs.com」;
(3)、路徑:即資源在主機上的位置,使用「/」分隔多級目錄,在這裏是「/simple-free/p/12901831.html」。
四、HTTPS
HTTPS是運行在SSL/TLS協議上的HTTP,至關於「HTTP+SSL/TLS+TCP/IP」
SSL 的全稱是「Secure Socket Layer」,由網景公司發明,當發展到 3.0 時被標準化,更名爲 TLS,即「Transport Layer Security」,但因爲歷史的緣由仍是有不少人稱之爲 SSL/TLS,或者直接簡稱爲 SSL。
五、代理
代理(proxy)是HTTP協議中請求方和應答方中間的一個環節,做爲「中轉站」,既能夠轉發客戶端的請求,也能夠轉發服務器的應答。
(六)域名解析
一、com:頂級域名
二、cnblogs:二級域名
三、www:主機名
例如如今要訪問 www.cnblogs.com ,域名解析過程爲:
一、訪問根域名服務器,它會告訴你「com」頂級域名服務器的地址;
二、訪問「com」頂級域名服務器,它再告訴你「cnblogs.com 」域名服務器的地址;
三、最後訪問「apple.com」域名服務器,就獲得了「www.cnblogs.com 」的地址。
DNS 是一個樹狀的分佈式查詢系統,但爲了提升查詢效率,外圍有多級的緩存;因此更具體的說,域名解析過程應該是:
一、查找瀏覽器DNS緩存
二、查找操做系統DNS緩存
三、在hosts文件中查找域名記錄
四、在一些大公司、網絡運營商的DNS緩存中去查找(非權威域名服務器)
五、都不存在再根據上述步驟進行解析
即:瀏覽器緩存->操做系統dnscache ->hosts文件->非權威域名服務器->根域名服務器->頂級域名服務器->二級域名服務器->權威域名服務器。
(七) 鍵入網址,按下回車發生了什麼
若是網址的主機部分是IP地址:
一、創建與web服務器的TCP鏈接:瀏覽器依照TCP協議的規範,使用「三次握手」創建與web服務器的鏈接 (通過SYN、SYN/ACK、ACK三個包)
二、HTTP協議開始工做:瀏覽器按照HTTP協議的格式,經過 TCP 發送 HTTP的請求報文
三、WEB服務器回覆:在 TCP 協議層面確認:「剛纔的報文我已經收到了」,不過這個 TCP 包 HTTP 協議是看不見的。
四、WEB服務器解析報文並回復:
(1)依據HTTP協議的規定,解析報文,看瀏覽器發送的請求是想作什麼
(2)根據請求的須要進行處理,再拼成符合HTTP格式的報文發回給客戶端。
五、瀏覽器回覆:瀏覽器也要給服務器回覆一個 TCP 的 ACK 確認,「你的響應報文收到了,多謝」
六、瀏覽器解析報文:調用JS引擎、排版引擎等進行處理,渲染成咱們看到的頁面。
若是網址的主機部分是域名:那麼就會多一個域名解析過程,根據上面的步驟,找到域名對應的IP地址後,再經過「三次握手」創建TCP鏈接等等。
(八)HTTP協議報文
一、起始行(start line):描述請求或響應的基本信息;
二、頭部字段集合(header):使用 key-value 形式更詳細地說明報文;
三、消息正文(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協議請求方法
一、GET:獲取資源,能夠理解爲讀取或者下載數據;二、HEAD:獲取資源的元信息;三、POST:向資源提交數據,至關於寫入或上傳數據;四、PUT:相似 POST;五、DELETE:刪除資源;六、CONNECT:創建特殊的鏈接隧道;七、OPTIONS:列出可對資源實行的方法;八、TRACE:追蹤請求 - 響應的傳輸路徑。