成為一個(gè)合格的前端工程師 - HTTP - 0

前言

HTTP 我打算閱讀《HTTP權(quán)威指南》,并分章節(jié)做筆記桥滨。其中會(huì)漏掉我認(rèn)為不是必要或者在那個(gè)章節(jié)還沒(méi)有仔細(xì)說(shuō)明的知識(shí)摆碉,因?yàn)楦杏X(jué)事無(wú)巨細(xì)的列出來(lái)是教科書(shū)的事。

第一章

第一章并沒(méi)啥知識(shí)點(diǎn)

MIME : HTTP傳送的數(shù)據(jù)一般會(huì)放在請(qǐng)求體中顾画,而請(qǐng)求體是二進(jìn)制的數(shù)據(jù)取劫, 所以理論上能支持眾多數(shù)據(jù)類(lèi)型。HTTP 對(duì)這些類(lèi)型做了分類(lèi)亲雪,叫做 MIME (Multipurpose Internet Mail Extension). 應(yīng)用程序如瀏覽器接受到一個(gè)數(shù)據(jù)時(shí)勇凭,就會(huì)根據(jù)不同的 MIME 做分別處理。
MIME 一般放在HTTP報(bào)文的首部中的 Content-type 中如 : Content-type: image/jpeg;

第二章 URL 與資源

URL 尋找信息所需的資源位置义辕。

URL 的組成

URL一般有9個(gè)部分(一般用不了9個(gè))

結(jié)構(gòu)如下:

<協(xié)議>://<用戶(hù)>:<密碼>@<端口號(hào)>/<路徑>;<參數(shù)>?<查詢(xún)?cè)~>#<哈希值>


URL結(jié)構(gòu)圖

自行 google 虾标,一個(gè)個(gè)的介紹說(shuō)了也記不住。

URL 快捷方式

并不是每一個(gè)URL都需要嚴(yán)格的寫(xiě)滿(mǎn)訪問(wèn)資源所需的全部信息灌砖。

這個(gè)知識(shí)點(diǎn)應(yīng)該對(duì)爬蟲(chóng)程序也有幫助璧函,因?yàn)楣ぷ鞯臅r(shí)候有個(gè)寫(xiě)爬蟲(chóng)的過(guò)來(lái)問(wèn)我相關(guān)的知識(shí)

舉個(gè)例子:
如果你在 www.baidu.com/xxx/xxx頁(yè)面中有這樣一個(gè)超鏈接

    <a href="./bbb.html">./bbb.html</a>

這里的超鏈接地址是合法的。點(diǎn)擊會(huì)發(fā)現(xiàn)頁(yè)面跳轉(zhuǎn)到 www.baidu.com/xxx/bbb.html 基显。這里的./bbb.html也是一個(gè)合法的 URL 蘸吓。 這種 URL 叫做相對(duì) URL 。但最后請(qǐng)求的 URL 也還是要是一個(gè)完整的URL吧撩幽。這就需要一套從相對(duì) URL 到完整 URL 的規(guī)則库继。請(qǐng)看下面箩艺。

基礎(chǔ) URL : 既然是相對(duì) URL ,那么相對(duì)誰(shuí)呢宪萄,相對(duì)的 URL 就叫做基礎(chǔ) URL 艺谆。
還是上面 html 為例 (寫(xiě)前端的只知道這些。拜英。)基礎(chǔ) URL 就是 www.baidu.com/xxx/bbb.html 全部静汤,全部,全部居凶。在html中有個(gè)顯示改變基礎(chǔ) URL 的標(biāo)簽 <BASE> 有印象就行了虫给,就沒(méi)遇到過(guò)(希望你不會(huì)用到,維護(hù)起來(lái)應(yīng)該摸不著頭腦)侠碧。

生成絕對(duì) URL 規(guī)則如圖:


url拼接圖

總結(jié):
1.如果你的相對(duì) URL 帶協(xié)議的話抹估,那這個(gè)就是最終的 URL 。
2.相對(duì)URL如果非空舆床,且?guī)爸?/ ,如 '/hello'棋蚌,最終URL等于基礎(chǔ)URL路徑替換為相對(duì)URL之后的URL。如 相對(duì)URL 為 ‘/hello', 基礎(chǔ)URL為 ‘www.baidu.com/balabala/balabla'. 那么最后生成 www.baidu.com/hello.
3.如果上兩例都不是挨队。那么就根據(jù)相對(duì)URL 缺少的部分與基礎(chǔ)URL拼接谷暮。
如。 ‘./babba’與‘www.baidu.com/path/path2#afwe’ ,生成 www.baidu.com/path/babba.

個(gè)人測(cè)試demo:

url-test-demo.jpg

URL使用的編碼

當(dāng)你在 URL 輸入框輸入中文的時(shí)候盛垦,你可能發(fā)現(xiàn)你輸入的中文會(huì)變%xx%xx的形式(如果沒(méi)有湿弦,請(qǐng)按 F12 查看Network)。這說(shuō)明URL只支持部分字符腾夯。

why ?

  1. 有部分協(xié)議只支持ASCII 碼颊埃。如 SMTP
  2. URL 要求大家能看到,如果打入空格蝶俱、換行符班利、甚至是一些不可見(jiàn)的字符如/u0000 ,從網(wǎng)絡(luò)傳輸來(lái)講這不算問(wèn)題,但是對(duì)我們不太友好榨呆,畢竟看不見(jiàn)罗标。所以URL也限制了協(xié)議字符。

那么問(wèn)題來(lái)了
1.有時(shí)我們就需要用超過(guò)ASCII范文的字符积蜻,例如上例的搜索闯割,難道我們要用http報(bào)文的請(qǐng)求體來(lái)發(fā)送數(shù)據(jù)嗎,顯然太麻煩竿拆,性能也不好宙拉。
2.還記得上面的篇幅中URL的格式吧,里面有‘/','?','#’這樣的字符丙笋,如果我們就想發(fā)送這些字符呢谢澈?怎么能不混淆

how煌贴?

答案是轉(zhuǎn)譯。就是有一套規(guī)定把這些不合法的字符轉(zhuǎn)化為另一個(gè)格式澳化。
URL 的轉(zhuǎn)譯方法是使用 %% 的形式轉(zhuǎn)換崔步。
再細(xì)分兩種稳吮,一種應(yīng)對(duì)與符合編碼的非法字符 ASCII 缎谷。
如 % -> 25(ASCII) -> %25;
超過(guò)ASCII范圍的字符,因?yàn)橛貌煌木幋a有不同的結(jié)果灶似,所以沒(méi)有說(shuō)法列林。但是思路還是一樣的。以‘中‘使用Unicode為例子
中 -> 4E2D(Unicode) -> %4E%2D 酪惭。

非ASCII范圍的具體使用哪種編碼情況很多希痴,可以參考 關(guān)于URL編碼 - 阮一峰 ,但是個(gè)人感覺(jué)這種前后端約定好就行了春感,那可能考慮那么多砌创。

url字符限制表.jpg

結(jié)語(yǔ)

第二章結(jié)束,好像沒(méi)啥知識(shí)點(diǎn)鲫懒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嫩实,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子窥岩,更是在濱河造成了極大的恐慌甲献,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颂翼,死亡現(xiàn)場(chǎng)離奇詭異晃洒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)朦乏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)球及,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人呻疹,你說(shuō)我怎么就攤上這事吃引。” “怎么了诲宇?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵际歼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我姑蓝,道長(zhǎng)鹅心,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任纺荧,我火速辦了婚禮旭愧,結(jié)果婚禮上颅筋,老公的妹妹穿的比我還像新娘。我一直安慰自己输枯,他們只是感情好议泵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著桃熄,像睡著了一般先口。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瞳收,一...
    開(kāi)封第一講書(shū)人閱讀 51,462評(píng)論 1 302
  • 那天碉京,我揣著相機(jī)與錄音,去河邊找鬼螟深。 笑死谐宙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的界弧。 我是一名探鬼主播凡蜻,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼垢箕!你這毒婦竟也來(lái)了划栓?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤舰讹,失蹤者是張志新(化名)和其女友劉穎茅姜,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體月匣,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钻洒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锄开。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片素标。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖萍悴,靈堂內(nèi)的尸體忽然破棺而出头遭,到底是詐尸還是另有隱情,我是刑警寧澤癣诱,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布计维,位于F島的核電站,受9級(jí)特大地震影響撕予,放射性物質(zhì)發(fā)生泄漏鲫惶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一实抡、第九天 我趴在偏房一處隱蔽的房頂上張望欠母。 院中可真熱鬧欢策,春花似錦、人聲如沸赏淌。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)六水。三九已至俺孙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缩擂,已是汗流浹背鼠冕。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胯盯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓计露,卻偏偏與公主長(zhǎng)得像博脑,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子票罐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理叉趣,服務(wù)發(fā)現(xiàn),斷路器该押,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • http協(xié)議有http0.9疗杉,http1.0,http1.1和http2三個(gè)版本蚕礼,但是現(xiàn)在瀏覽器使用的是htt...
    一現(xiàn)_閱讀 1,863評(píng)論 0 3
  • 聲明:本文章中的說(shuō)法僅是個(gè)人理解總結(jié)奠蹬,不一定完全正確朝聋,但是可以有助于理解。 關(guān)于HTTP協(xié)議可以參考以下: HTT...
    全端玩法閱讀 2,071評(píng)論 5 62
  • 夢(mèng)想從來(lái)不會(huì)選擇人囤躁,它是上天賦予每個(gè)人構(gòu)建未來(lái)藍(lán)圖的神奇畫(huà)筆冀痕。夢(mèng)想不分高低貴賤,只要你心中有夢(mèng)狸演,樂(lè)觀充實(shí)地過(guò)好每一天言蛇。
    北陌塵閱讀 167評(píng)論 0 0
  • 詩(shī)債遣誰(shuí)收 硯田引入千江水,墨海搖來(lái)一葉舟宵距; 筆底花香春世界腊尚,案余詩(shī)債遣誰(shuí)收?
    補(bǔ)缺樓丨胡德棒閱讀 278評(píng)論 0 4