簡(jiǎn)介:
超文本傳輸協(xié)議---一種應(yīng)用層協(xié)議
=====================================================
URI和URL
URI(Uniform Resource Identifier,統(tǒng)一資源標(biāo)識(shí)符)用于標(biāo)識(shí)某一資源 。
URL(Uniform Resource Loaction迟几,統(tǒng)一資源定位符)用于標(biāo)識(shí)某一資源的位置亭饵,可以提供找到該資源的位置 耍缴。
URL是URI的子集 桩蓉。
URI 格式
其中片段標(biāo)識(shí)符也稱(chēng)為hash冯袍,單頁(yè)面應(yīng)用使用hash表示不同的state
=================================
請(qǐng)求報(bào)文
由請(qǐng)求方法喜颁、請(qǐng)求URI、協(xié)議版本兄猩、可選的請(qǐng)求首部字段和內(nèi)容實(shí)體構(gòu)成的茉盏。
響應(yīng)報(bào)文
由協(xié)議版本、狀態(tài)碼(表示請(qǐng)求成功或失敗的數(shù)字代碼)枢冤、用以解釋狀態(tài)碼的原因短語(yǔ)鸠姨、可選的響應(yīng)首部字段以及實(shí)體主體構(gòu)成。
===========================
HTTP常用方法
==============
持久連接
持久連接的好處在于減少了 TCP 連接的重復(fù)建立和斷開(kāi)所造成的額外開(kāi)銷(xiāo)淹真,減輕了服務(wù)器端的負(fù)載
==============================
管線(xiàn)化
背景:持久連接技術(shù)使得管線(xiàn)化方式發(fā)送成為可能
特點(diǎn):管線(xiàn)化技術(shù)出現(xiàn)后使得不用等待響應(yīng)即可直接發(fā)送下一個(gè)請(qǐng)求(從前發(fā)送請(qǐng)求后需要等待并接收響應(yīng))讶迁,這樣就可以做到同時(shí)并行發(fā)送多個(gè)請(qǐng)求,而不需要一個(gè)接一個(gè)等待響應(yīng)核蘸。
====================
Cookie
1巍糯、引入原因:
1)無(wú)狀態(tài)優(yōu)點(diǎn):減少服務(wù)器cpu及內(nèi)存資源的消耗
2)缺點(diǎn):HTTP是無(wú)狀態(tài)協(xié)議,無(wú)法根據(jù)之前的狀態(tài)進(jìn)行本次的請(qǐng)求處理客扎。登錄認(rèn)證的web頁(yè)面不能管理狀態(tài)祟峦,每次跳轉(zhuǎn)需要在請(qǐng)求報(bào)文添加參數(shù)來(lái)管理信息
3)如果讓服務(wù)器管理全部客戶(hù)端狀態(tài)則會(huì)成為負(fù)擔(dān),保留無(wú)狀態(tài)協(xié)議這個(gè)特征的同時(shí)又要解決類(lèi)似的矛盾問(wèn)題徙鱼,于是引入了 Cookie 技術(shù)
2宅楞、Cookie特點(diǎn):
Cookie技術(shù)通過(guò)在請(qǐng)求和響應(yīng)報(bào)文中寫(xiě)入Cookie信息來(lái)控制客戶(hù)端的狀態(tài),Cookie會(huì)根據(jù)從服務(wù)器端發(fā)送的響應(yīng)報(bào)文內(nèi)的一個(gè)叫Set-Cookie的首部字段,通知客戶(hù)端保存Cookie厌衙,當(dāng)下次客戶(hù)端再次往該服務(wù)器發(fā)送請(qǐng)求時(shí)距淫,客戶(hù)端會(huì)自動(dòng)在請(qǐng)求報(bào)文中加入Cookie值后發(fā)送出去。服務(wù)器會(huì)去檢查是從哪個(gè)客戶(hù)端發(fā)來(lái)的請(qǐng)求迅箩,然后對(duì)比服務(wù)器上的記錄溉愁,得到之前的狀態(tài)信息。
=========================================================
狀態(tài)碼
HTTP 狀態(tài)碼負(fù)責(zé)表示客戶(hù)端 HTTP 請(qǐng)求的返回結(jié)果饲趋、標(biāo)記服務(wù)器端的處理是否正常、通知出現(xiàn)的錯(cuò)誤等工作撤蟆。借助狀態(tài)碼奕塑,用戶(hù)可以知道服務(wù)器端是正常處理了請(qǐng)求,還是出現(xiàn)了錯(cuò)誤家肯。
狀態(tài)碼由3位數(shù)字+原因短語(yǔ)組成龄砰,如 200 OK。數(shù)字中的第一位指定了響應(yīng)類(lèi)別讨衣,后兩位無(wú)分類(lèi)换棚。響應(yīng)類(lèi)別有以下 5 種。
2××成功
2××的響應(yīng)結(jié)果表明請(qǐng)求被正常處理反镇。
1)200 OK:表示從客戶(hù)端發(fā)來(lái)的請(qǐng)求在服務(wù)器端被正常處理
2)204 No Content:請(qǐng)求處理成功固蚤,但無(wú)資源可返回。代表服務(wù)器接收的請(qǐng) 求已成功處理歹茶,但在返回的響應(yīng)報(bào)文中不含實(shí)體的主體部分夕玩。另外,也不允許返回 任何實(shí)體的主體惊豺。比如燎孟,當(dāng)從瀏覽器發(fā)出請(qǐng)求處理后,返回 204 響應(yīng)尸昧,那么瀏 覽器顯示的頁(yè)面不發(fā)生更新揩页。
3)206 Partial Content:對(duì)資源某一部分的請(qǐng)求。表示客戶(hù)端進(jìn)行了范圍 請(qǐng)求烹俗,而服務(wù)器成功執(zhí)行了這部分的 GET 請(qǐng)求爆侣。響應(yīng)報(bào)文中包含由 Content- Range 指定范圍的實(shí)體內(nèi)容。
3XX 重 定 向
3XX 響應(yīng)結(jié)果表明瀏覽器需要執(zhí)行某些特殊的處理以正確處理請(qǐng)求衷蜓。
1)301 Moved Permanently ?永久性重定向累提。該狀態(tài)碼表示請(qǐng)求的資源已被分配了新的URI,以后應(yīng)使用資源現(xiàn)在所指的URI磁浇。
也就是說(shuō)斋陪,如果已經(jīng)把資源對(duì)應(yīng)的URI保存為書(shū)簽了,這時(shí)應(yīng)該按Location 首部字段提示的 URI 重新保存。
2)302 Found ?臨時(shí)性重定向无虚。該狀態(tài)碼表示請(qǐng)求的資源已被分配了新的 URI缔赠,希望用戶(hù)(本次)能使用新的 URI 訪(fǎng)問(wèn)。
和 301 Mov ed Permanently 狀態(tài)碼相似友题,但 302 狀態(tài)碼代表的資源不是被永久移動(dòng)嗤堰,只是臨時(shí)性質(zhì)的。換句話(huà)說(shuō)度宦,已移動(dòng)的資源對(duì)應(yīng)的 URI 將來(lái)還有可能發(fā)生改變踢匣。比如,用戶(hù)把 URI 保存成書(shū)簽戈抄,但不會(huì)像 301 狀態(tài)碼出現(xiàn)時(shí)那樣去更新書(shū)簽离唬,而是仍舊保留返回 302 狀態(tài)碼的頁(yè)面對(duì)應(yīng)的 URI。
3)303 See Other ?表示由于請(qǐng)求對(duì)應(yīng)的資源存在著另一個(gè) URI划鸽,應(yīng)使用 GET 方法定向獲取請(qǐng)求的資源输莺。
303 狀態(tài)碼和 302 Found 狀態(tài)碼有著相同的功能,但 303 狀態(tài)碼明確表示客戶(hù)端應(yīng)當(dāng)采用 GET 方法獲取資源裸诽,這點(diǎn)與 302 狀態(tài)碼有區(qū)別嫂用。
4)304 Not Modified ?資源已找到,但未復(fù)合條件請(qǐng)求丈冬。該狀態(tài)碼表示客戶(hù)端發(fā)送附帶條件的請(qǐng)求時(shí)嘱函,服務(wù)器端允許請(qǐng)求訪(fǎng)問(wèn)資源,但未滿(mǎn)足條件的情況殷蛇。304 狀態(tài)碼返回時(shí)实夹,不包含任何響應(yīng)的主體部分。304 雖然被劃分在 3XX 類(lèi)別中粒梦,但是和重定向沒(méi)有關(guān)系亮航。
5)307 Temporary Redirect ?臨時(shí)重定向。該狀態(tài)碼與 302 Found 有著相同的含義匀们。盡管 302 標(biāo)準(zhǔn)禁止 POST 變換成 GET缴淋,但實(shí)際使用時(shí)大家并不遵守。307 會(huì)遵照瀏覽器標(biāo)準(zhǔn)泄朴,不會(huì)從 POST 變成 GET重抖。但是,對(duì)于處理響應(yīng)時(shí)的行為祖灰,每種瀏覽器有可能出現(xiàn)不同的情況钟沛。
======================