1.什麼是HTTP?
HTTP(HyperText Transfer Protocol,超文本傳輸協議)是因特網上應用最爲普遍的一種網絡傳輸協議,全部的WWW文件都必須遵照這個標準。linux
HTTP是一個基於TCP/IP通訊協議來傳遞數據(HTML 文件, 圖片文件, 查詢結果等)。瀏覽器
2.HTTP的工做原理是什麼?是作什麼用的?
HTTP 的做用就是指導瀏覽器和服務器如何進行溝通。服務器
簡單的工做原理是:cookie
- 瀏覽器負責發起請求
- 服務器在 80 端口接收請求
- 服務器負責返回內容(響應)
- 瀏覽器負責下載響應內容
注意:
- HTTP是無鏈接:無鏈接的含義是限制每次鏈接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開鏈接。採用這種方式能夠節省傳輸時間。
- HTTP是媒體獨立的:這意味着,只要客戶端和服務器知道如何處理的數據內容,任何類型的數據均可以經過HTTP發送。客戶端以及服務器指定使用適合的MIME-type內容類型。(更多關於的MIME-type內容類型的信息,本身搜索)
- HTTP是無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺乏狀態意味着若是後續處理須要前面的信息,則它必須重傳,這樣可能致使每次鏈接傳送的數據量增大。另外一方面,在服務器不須要先前信息時它的應答就較快。
3.HTTP 請求包括哪些部分?如何用Chrome開發者工具查看 HTTP 請求內容?
請求的格式:
第一部分:動詞 路徑 協議/版本
第二部分:Key1: value1
Key2: value2
... ...
Key n: value n
第三部分:
第四部分:要上傳的數據網絡
注意:
- 請求最多包含四部分,最少包含三部分。(也就是說第四部分能夠爲空)
- 第三部分永遠都是一個回車(\n),用來區分第二部分和第四部分
- 動詞也是請求方法,有 GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS 等 (HTTP1.1)
- GET: 從服務器獲取內容
- POST: 向服務器新增,上傳內容
- PUT: 總體更新,新上傳的內容覆蓋以前上傳的全部內容
- PATCH: 局部更新,將以前上傳的部份內容替換爲新上傳的內容
- DEMETE: 刪除
- HEAD: 相似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭
- OPTIONS: 容許客戶端查看服務器的性能。
咱們實際應用中經常使用到的只有 GET 和 POST,發出的請求包含數據就用 POST,不包含數據就用 GET。curl
-
這裏的路徑必須以 / 開頭,它包括「查詢參數」,但不包括「錨點」。若是你沒有寫路徑,那麼路徑默認爲 /
工具
-
第 2 部分中的 Content-Type 標註了第 4 部分的格式性能
使用Chrome開發者工具查看 HTTP 請求內容
- 打開 瀏覽器
- 右鍵空白處,點擊 [檢查]
- 點擊上面一排中的 [Network]
- 地址欄輸入網址,回車,在 Network 中會出現不少請求,點擊請求的名稱。
- 點擊 [Request Headers],點擊 [view source],你就會看到請求的前三部分。
- 若是有請求的第四部分,那麼在 FormData 或 Payload 裏面能夠看到。
4.HTTP 響應包括哪些部分,如何用Chrome開發者工具查看 HTTP 響應內容?
響應的格式:
第一部分: 協議/版本號 狀態碼 狀態解釋
第二部分:Key1: value1
Key2: value2
... ...
Key n: value n
第三部分:
第四部分:要下載的內容測試
注意:
- 狀態碼要背,是服務器對瀏覽器說的話
- 1xx: 表示信息,服務器收到請求,須要請求者繼續執行操做,不經常使用
- 2xx: 表示成功,操做被成功接收並處理;200:普通成功(GET) 204:建立成功(POST)
- 3xx: 表示重定向,須要進一步的操做以完成請求;301:永久的搬走了,第二部分會給個location:是搬過去的地 址 302:臨時的不存在 304:這一次的內容和上一次的內容同樣
- 4xx: 表示客戶端錯誤,請求包含語法錯誤或沒法完成請求 404
- 5xx: 表示服務器錯誤,服務器在處理請求的過程當中發生了錯誤 50二、500
更多的狀態碼點這裏。
- 狀態解釋沒什麼用
- 第 2 部分中的 Content-Type 標註了第 4 部分的格式
- 第 2 部分中的 Content-Type 遵循 MIME 規範
如何用Chrome開發者工具查看 HTTP 響應內容
- 打開 瀏覽器
- 右鍵空白處,點擊 [檢查]
- 點擊上面一排中的 [Network]
- 地址欄輸入網址,回車,在 Network 中會出現不少請求,點擊請求的名稱。
- 點擊 [Responses Headers],點擊 [view source],你就會看到響應的前三部分。
- 響應的第四部分在 Responses 裏面能夠看到。
如何使用 curl 命令
curl命令是一個利用URL規則在命令行下工做的文件傳輸工具。它支持文件的上傳和下載,因此是綜合傳輸工具,但按傳統,習慣稱curl爲下載工具。做爲一款強力工具,curl支持包括HTTP、HTTPS、ftp等衆多協議,還支持POST、cookies、認證、從指定偏移處下載部分文件、用戶代理字符串、限速、文件大小、進度條等特徵。作網頁處理流程和數據檢索自動化,curl能夠祝一臂之力。網絡傳輸協議
語法:curl(選項)-- "請求的網址" (注意 -- 後有一個空格)
選項:此處僅僅舉例,更多內容點這裏。
- -a : 上傳文件時,附加到目標文件
- -d : HTTP POST方式傳送數據
- -G : 以get的方式來發送數據
- -H : 自定義頭信息傳遞給服務器
- -s : 靜默模式。不輸出任何東西
- -v : 使提取更加冗長/囉嗦。主要用於調試。
- -X : 指定什麼命令
... ...
使用:
curl命令能夠用來執行下載、發送各類HTTP請求,指定HTTP頭部等操做。若是系統沒有curl可使用yum install curl安裝,也能夠下載安裝。curl是將下載文件輸出到stdout,將進度信息輸出到stderr,不顯示進度信息使用--silent選項。對於測試來說,它是Web相關測試很是實用的工具,包括debugging,使用起來很是方便。
這只是HTTP入門,還有不少知識本文沒有提到,後期會繼續補充,若是本文對你有幫助,請推薦給更多須要幫助的人。