關(guān)于HTTP
了解HTTP
不知道大家在瀏覽網(wǎng)頁的過程中是否有留意過瀏覽器輸入框中的網(wǎng)址秉犹,比如 https://www.google.com這個(gè)稱為URL蛉谜,通過 URL 你可以確定一個(gè)「唯一的」網(wǎng)址(地址)。
最前端的一部分就是我們的HTTP了崇堵,中文全稱是:超文本傳輸協(xié)議型诚,英文全稱是:HyperText Transfer Protocol。細(xì)心的你可能已經(jīng)發(fā)現(xiàn)了鸳劳,我舉得例子里是明明是寫的HTTPS狰贯,別急,聽我下面慢慢解釋赏廓!
HTTP請(qǐng)求
GET方式:
輸入命令行:curl -X GET -s -v -H -- "https://www.baidu.com" (curl創(chuàng)造一個(gè)請(qǐng)求涵紊,并返回)
POST方式:
輸入命令行:curl -X POST -d "Hello" -s -v -H -- "https://www.baidu.com"
請(qǐng)求的格式:
1.動(dòng)詞 路徑 協(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
4.要上傳的數(shù)據(jù)
1.請(qǐng)求最多包含四部分,最少包含三部分幔摸。(也就是說第四部分可以為空)
2.第三部分永遠(yuǎn)都是一個(gè)回車(\n)
3.動(dòng)詞有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
4.這里的路徑包括「查詢參數(shù)」栖袋,但不包括「錨點(diǎn)」
5.如果你沒有寫路徑,那么路徑默認(rèn)為 /
6.第 2 部分中的 Content-Type 標(biāo)注了第 4 部分的格式
HTTP響應(yīng)
對(duì)應(yīng)上文GET請(qǐng)求
對(duì)應(yīng)上文POST請(qǐng)求
1.GET 請(qǐng)求和 POST 請(qǐng)求對(duì)應(yīng)的響應(yīng)可以一樣抚太,也可以不一樣
2.響應(yīng)的第四部分可以很長(zhǎng)很長(zhǎng)很長(zhǎng)
ps:GET只能用來獲取信息,POST用來上傳信息,Host是可以修改的尿贫!
如何用Chrome開發(fā)者工具(F12打開)查看 HTTP 請(qǐng)求电媳、響應(yīng)內(nèi)容
打開 Network
輸入網(wǎng)址
選中第一個(gè)
查看 request(查看請(qǐng)求),查看 Response Headers(查看響應(yīng))庆亡,點(diǎn)擊「view source」
如果有請(qǐng)求的第四部分匾乓,那么在 FormData 或 Payload 里面可以看到
查看 Response 或者 Preview,你會(huì)看到響應(yīng)的第 4 部分
curl命令的使用
昨天我已經(jīng)寫過如何使用https://explainshell.com/了又谋,關(guān)于curl命令的使用大家可以自行查閱
對(duì)了F捶臁!差點(diǎn)忘了彰亥,為什么現(xiàn)在都是用HTPPS協(xié)議而不使用HTTP協(xié)議呢咧七,以登陸為例,如果你登陸的網(wǎng)站使用的是HTTP協(xié)議任斋,那么你可以借助開發(fā)者工具查看到自己的命令是明文儲(chǔ)存在里面的继阻,明文!7峡帷瘟檩!而HTTPS協(xié)議會(huì)對(duì)我們的密碼進(jìn)行加密,即使是你自己使用開發(fā)者工具也看不懂3后 墨辛! 相信聰明的小伙伴都懂了吧,咱們下次見O(∩_∩)O
curl -X POST -d "username=ff&password=123" -s -v -H -- "www.baidu.com/path"
POST /path HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.55.0
Accept: /
Content-Length: 24
Content-Type: application/x-www-form-urlencoded