Http協(xié)議
Http請求的本質(zhì),就是創(chuàng)建兩個socket對象金矛,一個是客戶端拍埠,一個是服務(wù)端失驶,他們互相通過字符串的形式通信,而這些字符串遵循的就是http協(xié)議枣购,而http協(xié)議規(guī)定了請求頭和請求體是通過兩個/r/n進(jìn)行分隔嬉探,而請求頭又是通過一個/r/n進(jìn)行分隔擦耀,而響應(yīng)頭和響應(yīng)體一樣分隔,cookie是存放在請求頭和響應(yīng)頭中進(jìn)行傳輸?shù)募撞觯鴊et請求是沒有請求體的埂奈,但是他也必須以/r/n進(jìn)行分割
特點
http協(xié)議,即超文本傳輸協(xié)議定躏,這個協(xié)議詳細(xì)規(guī)定了瀏覽器和萬維網(wǎng)服務(wù)器之間的相互通信的規(guī)則
- 基于請求/響應(yīng)式的账磺,給一次請求,服務(wù)器給一次響應(yīng)
- http是無狀態(tài)協(xié)議:一旦斷開痊远,下一次存儲任何信息垮抗,
- 協(xié)議雙方:瀏覽器和服務(wù)器
- 請求協(xié)議:通信規(guī)則規(guī)定了客戶端發(fā)送給服務(wù)端的內(nèi)容格式
- 響應(yīng)協(xié)議:通信規(guī)則規(guī)定了服務(wù)器發(fā)送給客戶端的內(nèi)容格式
- URL:統(tǒng)一資源定位符,就是一個網(wǎng)址:協(xié)議名://域名:端口/路徑
請求協(xié)議
客戶端打包數(shù)據(jù)發(fā)送給服務(wù)端碧聪,必須要按照服務(wù)端的格式來寫冒版,請求方式有兩種,get方式和post方式
區(qū)別
- get方式:直接寫在地址欄 ?username=egon&pwd=123以這種方式發(fā)送
應(yīng)用場景 地址欄訪問逞姿,a標(biāo)簽辞嗡,form表單 - post方式:把數(shù)據(jù)放在請求體里面發(fā)送
格式(get)
- requestHeaders(請求頭)
- POST http1.1
- key:value
- ...
格式(post)
- RequestHeaders(請求頭)
- POST http1.1
- key:value
- …(向服務(wù)器做一些聲明,告訴服務(wù)器自己能識別的文本格式滞造、語言续室、壓縮格式、來源等等)
- \r\n(空行)
- 請求體(放數(shù)據(jù)的地方)
區(qū)別
- post請求相對安全一點谒养,最起碼不會暴露在地址欄
- 地址欄容量有限挺狰,如果內(nèi)容太大,get請求裝不下
響應(yīng)協(xié)議
- 相應(yīng)首行: http 200ok 狀態(tài)碼买窟,等狀態(tài)信息
- 相應(yīng)頭信息:responseHeaders
- key:value
- …(服務(wù)器向瀏覽器發(fā)送一些聲明丰泊,自己數(shù)據(jù)的格式,編碼始绍,大小等等)
- 空行:\r\n
- 相應(yīng)體:渲染到頁面的HTML
狀態(tài)碼
- 200:請求成功瞳购,服務(wù)器會把響應(yīng)體內(nèi)容顯示在瀏覽器中。
- 404:請求的資源沒有找到
- 304:瀏覽器第一次請求之后會緩存下服務(wù)器相應(yīng)的響應(yīng)以及最后修改時間亏推,等瀏覽器第二次請求發(fā)送后苛败,如果服務(wù)端數(shù)據(jù)沒有改動,也就是最后修改事件沒有變化的話径簿,服務(wù)器會給瀏覽器發(fā)送304狀態(tài)嗎,告訴瀏覽器不用從服務(wù)器去拿嘀韧,自己的緩存就可以