摘要:入門一在中查看請求與響應本文簡單總結的請求與響應。服務器與瀏覽器的交互瀏覽器負責發起請求服務器在端口接收請求服務器負責返回內容響應瀏覽器負責下載響應內容協議的作用就是指導瀏覽器和服務器如何進行溝通。請求使用來在里創造一個請求,并得到響應。
HTTP入門(一):在Bash中curl查看請求與響應
服務器與瀏覽器的交互本文簡單總結HTTP的請求與響應。
本文主要目的是對學習內容進行總結以及方便日后查閱。
詳細教程和原理可以參考HTTP文檔(MDN)。
本文版權歸馬濤濤所有。
本文所引用的圖片和文字版權歸原作者所有,侵權刪。
如有錯誤請在下方評論區指出,歡迎積極討論。
瀏覽器負責發起請求
服務器在 80 端口接收請求
服務器負責返回內容(響應)
瀏覽器負責下載響應內容
HTTP協議 的作用就是指導瀏覽器和服務器如何進行溝通。
請求使用curl -s -v -H "Mtt: xxx" -- https://www.baidu.com來在Bash里創造一個請求,并得到響應。
命令行釋義
截圖:
-s:簡短的信息
-v:> 表示請求, < 表示響應
-H:添加一個響應頭
請求與響應截圖:
請求內容:
> GET / HTTP/1.1 GET方法發送請求,獲取默認根目錄,使用http1.1協議 > Host: www.baidu.com 主機 > User-Agent: curl/7.58.0 用curl7.58這個東西發送的請求 > Accept: */* 接受服務器返回的任何內容 > Frank: xxx > 有一個回車不同參數測試
curl -X POST -s -v -H "Frank: xxx" -- "https://www.baidu.com"測試
請求的內容為
POST / HTTP/1.1 因為-x改成了post Host: www.baidu.com User-Agent: curl/7.54.0 Accept: */* Frank: xxx
curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- https://www.baidu.com測試
請求的內容為
POST / HTTP/1.1 Host: www.baidu.com User-Agent: curl/7.54.0 Accept: */* Frank: xxx Content-Length: 10 內容長度為是10 Content-Type: application/x-www-form-urlencoded 1234567890
"-d 1234567890":我要往百度上傳數據1234567890
Content-Length: 10 : 內容長度為是10
Content-Type:我要上傳內容的格式
Get是獲取,只看瀏覽器內容,不做其他的事
post是發表,上傳的意思。例如說我要注冊登錄,就把數據寫在-d里面,然后請求的時候就直接上傳了。
1 動詞 路徑(HTTP規定必須以/開頭) 協議/版本 2 Key1: value1 2 Key2: value2 2 Key3: value3 2 Content-Type: application/x-www-form-urlencoded 2 Host: www.baidu.com 2 User-Agent: curl/7.54.0 3 (永遠是回車,用來區分二四部分) 4 要上傳的數據
請求最多包含四部分,最少包含三部分。(也就是說第四部分可以為空)
第三部分永遠都是一個回車(n)
動詞有 GET POST PUT(整體更新) PATCH(部分更新) DELETE(刪除一些東西) HEAD OPTIONS 等
這里的路徑包括「查詢參數」,但不包括「錨點」(服務器不看錨點,只看路徑)
如果你沒有寫路徑,那么路徑默認為 /
第 2 部分中的 Content-Type 標注了第 4 部分的格式
響應上面三個請求示例,前兩個請求對應的響應分別為
HTTP/1.1 200 OK Accept-Ranges: bytes Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform Connection: Keep-Alive Content-Length: 2443 Content-Type: text/html(百度返回的時候百度的數據長度和內容的格式) Date: Tue, 10 Oct 2017 09:14:05 GMT Etag: "5886041d-98b" Last-Modified: Mon, 23 Jan 2017 13:24:45 GMT Pragma: no-cache Server: bfe/1.0.8.18 Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/ 后面太長,省略了……
HTTP/1.1 302 Found Connection: Keep-Alive Content-Length: 17931 Content-Type: text/html Date: Tue, 10 Oct 2017 09:19:47 GMT Etag: "54d9749e-460b" Server: bfe/1.0.8.18 后面太長,省略了……
GET 請求和 POST 請求對應的響應可以一樣,也可以不一樣
響應的第四部分可以很長
響應的格式1 協議/版本號 狀態碼 狀態解釋 2 Key1: value1 2 Key2: value2 2 Content-Length: 17931 2 Content-Type: text/html 3 4 要下載的內容
? 狀態碼是服務器對瀏覽器說的話,詳情請看維基百科HTTP狀態碼
? 1xx 不常用
? 2xx 表示成功 200成功(get) 204創建成功(post)
? 3xx 表示滾吧 301(以前的人搬走了,搬去哪里會在第二部分location的一個key:value里該訴你) 302(外出了,過幾天才會回來表示服務器臨時不在)
? 4xx 表示你丫錯了(肯定是訪問者出錯,比如說你輸入了錯誤的地址)
? 5xx 表示好吧,我錯了(表示服務器錯了)
? 第 2 部分中的 Content-Type 標注了第 4 部分的格式
? 第 2 部分中的 Content-Type 遵循 MIME 規范
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/52078.html
閱讀 3085·2019-08-30 15:56
閱讀 1239·2019-08-29 15:20
閱讀 1577·2019-08-29 13:19
閱讀 1484·2019-08-29 13:10
閱讀 3388·2019-08-26 18:27
閱讀 3074·2019-08-26 11:46
閱讀 2238·2019-08-26 11:45
閱讀 3766·2019-08-26 10:12