請求和響應(yīng)

WWW的發(fā)明

1989年-1992年, Tim Berners-Lee(李爵士), 發(fā)明了WWW(World Wide Web), 一種適用于全世界的網(wǎng)絡(luò), 其次還發(fā)明了第一個服務(wù)器, 第一個瀏覽器, 第一個網(wǎng)頁, 發(fā)明了互聯(lián)網(wǎng)的雛形

主要包含以下三個概念:

  1. URL, 俗稱網(wǎng)址(還有URI, URN)
  2. HTTP, 兩個電腦直接傳輸內(nèi)容的協(xié)議
  3. HTML, 超級文本, 用來做頁面跳轉(zhuǎn)

URL的作用是能讓你訪問一個頁面, HTTP的作用是讓你能下載這個頁面, HTML的作用是讓你能看懂這個頁面

URL

一個URL通常由以下幾部分組成, 其實還有個端口,只是瀏覽器給隱藏掉了,默認是80端口

image

baidu.comwww.baidu.com 不是同一個域名, 但是都有同一個二級域名

.com 是頂級域名, baidu 是二級域名, www 是三級域名

DNS

Domain(域) Name(名) System(系統(tǒng))

  • 輸入域名

訪問域名: 我問路由, 然后路由去問電信該域名的ip是多少, ip是會變的, 因為百度的服務(wù)器有幾萬臺.

  • 輸出IP

電信會幫你解析該域名的ip, 幫你解析的服務(wù)器就是DNS服務(wù)器

DNS服務(wù)器會存儲資源, 例如主機記錄, 別名記錄, IP主機記錄等

image
image

請求與響應(yīng)

  • Server : 服務(wù)器,也就是你的電腦鞋喇。
  • Client :客戶端河劝,也就是你的瀏覽器。
  • HTTP :服務(wù)器和瀏覽器之間通信的協(xié)議,指導(dǎo)如何進行溝通凌唬。
  • 瀏覽器負責(zé)發(fā)起請求
  • 服務(wù)器在80端口接收請求
  • 服務(wù)器負責(zé)返回內(nèi)容(響應(yīng))
  • 瀏覽器負責(zé)下載響應(yīng)內(nèi)容

curl請求的使用

curl是 一個利用URL規(guī)則在命令行下工作的文件傳輸工具缠劝。它支持文件的上傳和下載,所以是綜合傳輸工具平挑,但按傳統(tǒng)游添,習(xí)慣稱url為下載工具。

列舉幾種常用的帶參數(shù)的curl命令

curl "http://example.com" -o filename # 將下載的內(nèi)容寫到文件中 output

curl "http://example.com" > filename # 同上

curl -O "http://example.com/filename" # 下載文件(.jpg, .png等)通熄,并保留遠程文件名 remote-name

curl -L "http://example.com/filename" # Location redirects 重定向

curl -s -v -H -- "http://example.com/filename" 
# -s 靜音模式唆涝,不顯示下載進度等其他的東西; 
# -v verbose 用于打印更多信息唇辨,包括發(fā)送的請求信息廊酣,這在調(diào)試腳本是特別有用;
# -H 自定義header頭信息傳遞給服務(wù)器, 添加響應(yīng)頭
# GET 請求

curl -d 'name=yjjtt' "http://example.com/filename" # -d data赏枚,POST請求傳遞數(shù)據(jù)
curl -X POST -d 'name=yjjtt' "http://example.com/filename" # -X 指定POST request亡驰, -d data

# 其他的自行g(shù)oogle linux curl就好了

curl 請求

  • 請求最多包含四部分, 最少包含三部分, 第四部分可以為空, 第四部分是要上傳的數(shù)據(jù)
  • 第三部分永遠是一個回車
  • 第一部分的路徑不包含錨點, 如果沒有寫路徑默認為/
  • 第二部分的Content-Type標(biāo)注了第四部分的格式

具體參照下面的例子來分析:

GET

命令行輸入該命令,curl -s -v -H "yjjtt: xxx" -- "https://www.baidu.com"

image

上圖就是curl請求的內(nèi)容

  1. GET / HTTP/1.1 : GET代表動詞(GET, POST, PUT,DELETE , PATCH, HEAD, OPTIONS)饿幅; /代表路徑凡辱,當(dāng)網(wǎng)址后面加上絕對路徑時會顯示,不加則顯示/;HTTP/1.1代表協(xié)議/版本
  2. 第二部分是圖中所有的key:value, 2-5行都是
  3. 第三部分是回車
  4. 第四部分為空

POST

命令行輸入該命令栗恩,curl -X POST -s -v -H "yjjtt: xxx" -- "https://www.baidu.com"

image
  • GET和POST的請求格式一樣

請求的格式

1 動詞 路徑 協(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 /n回車

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

curl響應(yīng)

  • 響應(yīng)包含四部分, 第四部分為要下載的內(nèi)容, 可以很長很長
  • 狀態(tài)碼要背, 是服務(wù)器對瀏覽器說的話

200 普通成功 204 創(chuàng)建成功
301 滾 永久不存在 location會告訴新地址
302 臨時不存在
404 頁面不存在, 瀏覽器錯誤
502 服務(wù)器錯誤 server taskcenter start/stop

  • 第二部分的Content-Type 標(biāo)注了第四部分的格式
  • 第 2 部分中的 Content-Type 遵循 MIME 規(guī)范

GET

image

上圖就是GET請求的響應(yīng)內(nèi)容

  1. 第一部分: HTTP/1.1 協(xié)議/版本, 200狀態(tài)碼, OK狀態(tài)解釋
  2. 第二部分: key:value
  3. 第三部分: 回車
  4. 第四部分: 要下載的內(nèi)容,百度首頁的HTML, 由第二部分的Content-Type決定, 如果將第二部分Content-Type的value改成text/htlm,將會報錯

POST

image

上圖出現(xiàn)302 狀態(tài)碼, 是因為百度首頁不支持POST, 所以第五部分會返回很抱歉透乾,您要訪問的頁面不存在!

  • GET和POST請求對應(yīng)的響應(yīng)可以一樣,也可以不一樣
  • 響應(yīng)的第四部分很長很長

響應(yīng)的格式

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

2 key1: value1

2 key2: value2

2 key3: value3

2 Content-type: text/html

2 Host: www.baidu.com

2 Content-Length: 17931

3 /n回車

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

使用Chrome發(fā)GET請求

www.baidu.com為例

  1. Chrome瀏覽器輸入www.baidu.com訪問
  2. 右鍵檢查,選擇NetWork,刷新頁面
  3. 選中第一個響應(yīng)
  4. 查看Headers中的Request Headers, 點擊view source
image
  1. 如上圖可以看到請求的三部分

  2. 如果有請求的第四部分磕秤,那么在 FormData 或 Payload 里面可以看到

使用Chrome查看GET請求的響應(yīng)

同樣以www.baidu.com為例

  1. Chrome瀏覽器輸入www.baidu.com訪問
  2. 右鍵檢查,選擇NetWork,刷新頁面
  3. 選中第一個響應(yīng)
  4. 查看Headers中的Response Headers, 點擊view source
image
  1. 如上圖可以看到響應(yīng)的三部分

使用Chrome發(fā)POST請求

同樣以www.baidu.com為例, 需要先退出百度賬號的登錄,然后進行登錄, 因為登錄是POST的請求

  1. 登錄之前先選中NetWork的Preserve log, 防止頁面更新,看不到POST請求
image
  1. 登錄, 選中?login的響應(yīng)
  2. 查看對應(yīng)的請求和響應(yīng)
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乳乌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子市咆,更是在濱河造成了極大的恐慌钦扭,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件床绪,死亡現(xiàn)場離奇詭異客情,居然都是意外死亡其弊,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門膀斋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梭伐,“玉大人,你說我怎么就攤上這事仰担『叮” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵摔蓝,是天一觀的道長赂苗。 經(jīng)常有香客問我,道長贮尉,這世上最難降的妖魔是什么拌滋? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮猜谚,結(jié)果婚禮上败砂,老公的妹妹穿的比我還像新娘。我一直安慰自己魏铅,他們只是感情好昌犹,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著览芳,像睡著了一般斜姥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沧竟,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天疾渴,我揣著相機與錄音,去河邊找鬼屯仗。 笑死搞坝,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的魁袜。 我是一名探鬼主播桩撮,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼峰弹!你這毒婦竟也來了店量?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤鞠呈,失蹤者是張志新(化名)和其女友劉穎融师,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚁吝,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡旱爆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年舀射,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怀伦。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡脆烟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出房待,到底是詐尸還是另有隱情邢羔,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布桑孩,位于F島的核電站拜鹤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏流椒。R本人自食惡果不足惜敏簿,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望镣隶。 院中可真熱鬧极谊,春花似錦诡右、人聲如沸安岂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽域那。三九已至,卻和暖如春猜煮,著一層夾襖步出監(jiān)牢的瞬間次员,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工王带, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淑蔚,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓愕撰,卻偏偏與公主長得像刹衫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子搞挣,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • HTTP和HTTPS HTTP(HyperText Transfer Protocol带迟,超文本傳輸協(xié)議):是一種發(fā)...
    小七奇奇閱讀 1,367評論 0 3
  • HTTP和HTTPS HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議):是一種發(fā)...
    shenyoujian閱讀 356評論 0 0
  • Server(服務(wù)端)囱桨、Client(客戶端) 瀏覽器發(fā)出請求仓犬,服務(wù)器在80端口接收請求;服務(wù)器返回內(nèi)容(響應(yīng))舍肠,...
    xiaoxinwan閱讀 260評論 0 0
  • 服務(wù)器和瀏覽器的交互 瀏覽器負責(zé)發(fā)起請求 服務(wù)器在80端口接收請求 服務(wù)器負責(zé)返回內(nèi)容(響應(yīng)) 瀏覽器負責(zé)下載響應(yīng)...
    secret123閱讀 376評論 0 0
  • 1.HTTP工作原理 HTTP協(xié)議工作于客戶端-服務(wù)端架構(gòu)上搀继。瀏覽器作為HTTP客戶端通過URL向HTTP服務(wù)端即...
    Mo_dao閱讀 353評論 0 5