日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

curl 请求日志_HTTP入门(一):在Bash中curl查看请求与响应

發(fā)布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 curl 请求日志_HTTP入门(一):在Bash中curl查看请求与响应 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

HTTP入門(一):在Bash中curl查看請求與響應(yīng)

本文簡單總結(jié)HTTP的請求與響應(yīng)。

本文主要目的是對學(xué)習(xí)內(nèi)容進(jìn)行總結(jié)以及方便日后查閱。

詳細(xì)教程和原理可以參考HTTP文檔(MDN)。

本文版權(quán)歸馬濤濤所有。

本文所引用的圖片和文字版權(quán)歸原作者所有,侵權(quán)刪。

如有錯誤請在下方評論區(qū)指出,歡迎積極討論。

服務(wù)器與瀏覽器的交互

瀏覽器負(fù)責(zé)發(fā)起請求

服務(wù)器在 80 端口接收請求

服務(wù)器負(fù)責(zé)返回內(nèi)容(響應(yīng))

瀏覽器負(fù)責(zé)下載響應(yīng)內(nèi)容

HTTP協(xié)議 的作用就是指導(dǎo)瀏覽器和服務(wù)器如何進(jìn)行溝通。

請求

使用curl -s -v -H "Mtt: xxx" -- https://www.baidu.com來在Bash里創(chuàng)造一個請求,并得到響應(yīng)。

-s:簡短的信息

-v:> 表示請求, < 表示響應(yīng)

-H:添加一個響應(yīng)頭

請求與響應(yīng)截圖:

請求內(nèi)容:

> GET / HTTP/1.1 GET方法發(fā)送請求,獲取默認(rèn)根目錄,使用http1.1協(xié)議

> Host: www.baidu.com 主機(jī)

> User-Agent: curl/7.58.0 用curl7.58這個東西發(fā)送的請求

> Accept: */* 接受服務(wù)器返回的任何內(nèi)容

> Frank: xxx

> 有一個回車

不同參數(shù)測試

curl -X POST -s -v -H "Frank: xxx" -- "https://www.baidu.com"測試

請求的內(nèi)容為

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測試

請求的內(nèi)容為

POST / HTTP/1.1

Host: www.baidu.com

User-Agent: curl/7.54.0

Accept: */*

Frank: xxx

Content-Length: 10 內(nèi)容長度為是10

Content-Type: application/x-www-form-urlencoded

1234567890

"-d 1234567890":我要往百度上傳數(shù)據(jù)1234567890

Content-Length: 10 : 內(nèi)容長度為是10

Content-Type:我要上傳內(nèi)容的格式

Get是獲取,只看瀏覽器內(nèi)容,不做其他的事

post是發(fā)表,上傳的意思。例如說我要注冊登錄,就把數(shù)據(jù)寫在-d里面,然后請求的時候就直接上傳了。

總結(jié):請求的格式

1 動詞 路徑(HTTP規(guī)定必須以/開頭) 協(xié)議/版本

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 (永遠(yuǎn)是回車,用來區(qū)分二四部分)

4 要上傳的數(shù)據(jù)

請求最多包含四部分,最少包含三部分。(也就是說第四部分可以為空)

第三部分永遠(yuǎn)都是一個回車(n)

動詞有 GET POST PUT(整體更新) PATCH(部分更新) DELETE(刪除一些東西) HEAD OPTIONS 等

這里的路徑包括「查詢參數(shù)」,但不包括「錨點」(服務(wù)器不看錨點,只看路徑)

如果你沒有寫路徑,那么路徑默認(rèn)為 /

第 2 部分中的 Content-Type 標(biāo)注了第 4 部分的格式

響應(yīng)

上面三個請求示例,前兩個請求對應(yīng)的響應(yīng)分別為

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(百度返回的時候百度的數(shù)據(jù)長度和內(nèi)容的格式)

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 請求對應(yīng)的響應(yīng)可以一樣,也可以不一樣

響應(yīng)的第四部分可以很長

響應(yīng)的格式

1 協(xié)議/版本號 狀態(tài)碼 狀態(tài)解釋

2 Key1: value1

2 Key2: value2

2 Content-Length: 17931

2 Content-Type: text/html

3

4 要下載的內(nèi)容

? 狀態(tài)碼是服務(wù)器對瀏覽器說的話,詳情請看維基百科HTTP狀態(tài)碼

? 1xx 不常用

? 2xx 表示成功 200成功(get) 204創(chuàng)建成功(post)

? 3xx 表示滾吧 301(以前的人搬走了,搬去哪里會在第二部分location的一個key:value里該訴你) 302(外出了,過幾天才會回來表示服務(wù)器臨時不在)

? 4xx 表示你丫錯了(肯定是訪問者出錯,比如說你輸入了錯誤的地址)

? 5xx 表示好吧,我錯了(表示服務(wù)器錯了)

? 第 2 部分中的 Content-Type 標(biāo)注了第 4 部分的格式

? 第 2 部分中的 Content-Type 遵循 MIME 規(guī)范

總結(jié)

以上是生活随笔為你收集整理的curl 请求日志_HTTP入门(一):在Bash中curl查看请求与响应的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。