【HTML】瀏覽器輸入U(xiǎn)RL,發(fā)生了什么沿猜?【HTTP篇】

瀏覽器輸入U(xiǎn)RL枚荣,發(fā)生了什么?【HTTP篇】

CreateTime:2016-09-06 20:07:17
Author:zhongxia
瀏覽器輸入U(xiǎn)RL之后啼肩,發(fā)生了什么橄妆? 針對前端來說,最重要的是 http 和 瀏覽器渲染祈坠。底層硬件害碾,網(wǎng)絡(luò)通訊,后端的相關(guān)知識赦拘,這里就大概一概而過了慌随。 這一篇主要講解一下http相關(guān)方面的。

1. 瀏覽器輸入U(xiǎn)RL另绩,解析URL

用戶輸入U(xiǎn)RL地址儒陨,瀏覽器會去解析URL地址,得到請求服務(wù)器地址笋籽,請求頁面文件路徑蹦漠,以及請求參數(shù)

2. DNS解析

根據(jù)域名解析服務(wù)器的IP地址, ip地址是一串?dāng)?shù)據(jù)车海,不方便記憶笛园,因此有了域名。

  1. 從瀏覽器DNS緩存侍芝,找域名相對應(yīng)的IP
  2. 沒有找到研铆,則從系統(tǒng)緩存尋找
  3. 沒有找到,從系統(tǒng)的host文件里面找
  4. 沒有找到州叠,從路由器上找
  5. DNS服務(wù)器找
  6. ...
  7. 找到域名對應(yīng)的IP地址

3. 瀏覽器發(fā)送HTTP請求

瀏覽器發(fā)出一個(gè) HTTP協(xié)議的請求棵红,組織了一個(gè)請求的數(shù)據(jù)包(走OSI七層模型,從應(yīng)用層 到 最低層的數(shù)據(jù)鏈路層 的數(shù)據(jù)包層層封裝咧栗,然后傳到服務(wù)器在 層層解開)

3.1 請求消息

  • 請求行
    • 請求方法【POST/GET/PUT/DELETE】
    • URI
    • 請求協(xié)議【FTP逆甜、HTTP、HTTPS致板、等】/版本
  • 請求報(bào)頭
    • 參考最下面文章【待整理交煞,可以先參考最下面的參考文章】
  • 請求正文(需要傳到服務(wù)器的數(shù)據(jù))
image
image

請求頭 和 請求正文之間有 一個(gè)空行,空行是 HTTP規(guī)定的消息頭和消息體的分界線

3.2 響應(yīng)消息

  • 狀態(tài)行

  • 響應(yīng)報(bào)頭

    • 【待整理斟或,可以先參考最下面的參考文章】
  • 響應(yīng)正文

1xx:信息響應(yīng)類素征,表示接收到請求并且繼續(xù)處理

2xx:處理成功響應(yīng)類,表示動(dòng)作被成功接收、理解和接受

3xx:重定向響應(yīng)類御毅,為了完成指定的動(dòng)作根欧,必須接受進(jìn)一步處理

4xx:客戶端錯(cuò)誤,客戶請求包含語法錯(cuò)誤或者是不能正確執(zhí)行

5xx:服務(wù)端錯(cuò)誤端蛆,服務(wù)器不能正確執(zhí)行一個(gè)正確的請求

3.3 HTTP相關(guān)知識:

  1. 三層架構(gòu)(瀏覽器咽块,web服務(wù)器,數(shù)據(jù)庫)欺税,http 是用在 瀏覽器 和 web服務(wù)器之間通訊

  2. 兩個(gè)核心(瀏覽器發(fā)出request請求, Web服務(wù)器response返回?cái)?shù)據(jù)(text,xml揭璃,流等))

  3. 一個(gè)記住(HTTP是無狀態(tài)的)

無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力晚凿,服務(wù)器不知道客戶端是什么狀態(tài)。即我們給服務(wù)器發(fā)送 HTTP 請求之后瘦馍,服務(wù)器根據(jù)請求歼秽,會給我們發(fā)送數(shù)據(jù)過來,但是情组,發(fā)送完燥筷,不會記錄任何信息。
keep-alive 也無法改變這個(gè)無狀態(tài)

4. 以百度首頁為例獲取請求頭和響應(yīng)頭內(nèi)容:

1院崇、請求頭:

我們現(xiàn)在通過谷歌瀏覽器來查看一下請求頭:

以打開百度首頁為例肆氓,然后在谷歌瀏覽器中打開“工具-開發(fā)者工具”,切換到network標(biāo)簽底瓣, 然后刷新頁面:


image
image

上圖中谢揪,打開箭頭處html格式的文件,顯示如下:


image
image

上圖中的Request Headers就是我們所需要的請求頭捐凭。里面的內(nèi)容全部是鍵值對拨扶。服務(wù)器拿到這些鍵值對后會對其進(jìn)行分析。

我們再來重復(fù)一下常見請求頭鍵值對的含義:

  • Host:www.baidu.com 本次請求訪問的主機(jī)地址(虛擬主機(jī)名稱)
  • Cache-control:no-cache 設(shè)置網(wǎng)頁緩存的使用方法
  • Pragma:no-cache
  • Accept:text/html,xxxxxx…..客戶端可以接收的數(shù)據(jù)類型(如果內(nèi)容是:/茁肠,表示接收所有類型)
  • User-Agent:Mozilla/5.0xxxxx 主要表示客戶端類型
  • Accept-Encoding:gzip,deflate,sdch 瀏覽器能夠接收的數(shù)據(jù)壓縮編碼方式(表示瀏覽器能夠接收什么格式的壓縮的數(shù)據(jù))
  • Accept-Language:zh-CN,zh;q=0.8 瀏覽器期望的接受的語言種類
  • Accept-Charset: ISO-8859-1 客戶端所接收的字符集編碼
  • If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT 和緩存機(jī)制相關(guān)的頭
  • Referer: http://www.smyh.me/index.jsp 當(dāng)前頁面來自哪個(gè)頁面(可能是由之前的頁面通過超鏈接點(diǎn)進(jìn)到這個(gè)頁面來)
  • Cookie
  • Connection: close/Keep-Alive 請求完之后患民,是關(guān)閉此連接,還是繼續(xù)保持連接
  • Date: Tue, 11 Jul 2013 18:23:51 GMT 當(dāng)前請求的時(shí)間

注:上面的這些指的是get請求的請求頭垦梆。

2匹颤、響應(yīng)頭:

我們再來看一下響應(yīng)頭的內(nèi)容:


image
image

常見的響應(yīng)頭鍵值對的含義:

  • Location: http://www.smyh.me/index.jsp 重定向(302+Location實(shí)現(xiàn)重定向)
  • Server 服務(wù)器類型
  • Content-Encoding 服務(wù)器當(dāng)前返回給客戶端的數(shù)據(jù)壓縮格式
  • Content-Length 返回給客戶端的數(shù)據(jù)量的大小
  • Content-Language: zh-cn 語言種類
  • Content-Type: text/html; charset=GB2312 返回的數(shù)據(jù)的類型、字符集編碼方式
  • Last-Modified 資源最后一次修改的時(shí)間(配合請求頭中的If-Modified-Since+304/307實(shí)現(xiàn)緩存機(jī)制)
  • Refresh: 1;url=http://www.it315.org    隔多少秒以后奶赔,讓當(dāng)前頁面去訪問哪個(gè)地址(例如網(wǎng)頁登陸成功后惋嚎,跳回原來的界面,就是用的這個(gè)頭)
  • Content-Disposition: attachment;filename=aaa.zip 和下載相關(guān)站刑,通知瀏覽器以附件的形式下載服務(wù)器發(fā)送過去的數(shù)據(jù)
  • Transfer-Encoding: chunked 數(shù)據(jù)傳輸模式
  • Set-Cookie:SS=Q0=5Lb_nQ; path=/search 和cookie相關(guān)的頭
  • ETag: W/"83794-1208174400000" 和cookie相關(guān)的頭
  • Expires: -1 通知瀏覽器是否緩存當(dāng)前資源:如果這個(gè)頭的值是一個(gè)以毫秒為單位值另伍,則通知瀏覽器緩存資源到指定的時(shí)間點(diǎn);如果值是0或-1,則通知瀏覽器禁止緩存
  • Cache-Control: no-cache 通知瀏覽器是否緩存資源
  • Pragma: no-cache -- 通知瀏覽器是否緩存資源

注: 之所以三個(gè)頭是一個(gè)功能,是因?yàn)闅v史原因摆尝。不同的瀏覽器對這三個(gè)頭支持的不同,一般來說這三個(gè)頭要同時(shí)使用温艇,以確保不同的瀏覽器都能實(shí)現(xiàn)控制緩存的功能

  • Connection: close/Keep-Alive 是否繼續(xù)保持連接
  • Date: Tue, 11 Jul 2000 18:23:51 GMT 當(dāng)前響應(yīng)的時(shí)間

參考文章

  1. Android系列之網(wǎng)絡(luò)(二)----HTTP請求頭與響應(yīng)頭
  2. 如何理解HTTP響應(yīng)的狀態(tài)碼?
  3. 【i5ting】精解http
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末堕汞,一起剝皮案震驚了整個(gè)濱河市勺爱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌讯检,老刑警劉巖琐鲁,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異人灼,居然都是意外死亡围段,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門投放,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奈泪,“玉大人,你說我怎么就攤上這事灸芳±晕Γ” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵烙样,是天一觀的道長冯遂。 經(jīng)常有香客問我,道長误阻,這世上最難降的妖魔是什么债蜜? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮究反,結(jié)果婚禮上寻定,老公的妹妹穿的比我還像新娘。我一直安慰自己精耐,他們只是感情好狼速,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著卦停,像睡著了一般向胡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惊完,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天僵芹,我揣著相機(jī)與錄音,去河邊找鬼小槐。 笑死拇派,一個(gè)胖子當(dāng)著我的面吹牛荷辕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播件豌,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼疮方,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了茧彤?” 一聲冷哼從身側(cè)響起骡显,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎曾掂,沒想到半個(gè)月后惫谤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡珠洗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年石挂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片险污。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖富岳,靈堂內(nèi)的尸體忽然破棺而出蛔糯,到底是詐尸還是另有隱情,我是刑警寧澤窖式,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布蚁飒,位于F島的核電站,受9級特大地震影響萝喘,放射性物質(zhì)發(fā)生泄漏淮逻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一阁簸、第九天 我趴在偏房一處隱蔽的房頂上張望爬早。 院中可真熱鬧,春花似錦启妹、人聲如沸筛严。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桨啃。三九已至,卻和暖如春檬输,著一層夾襖步出監(jiān)牢的瞬間照瘾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工丧慈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留析命,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像碳却,于是被迫代替她去往敵國和親队秩。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359

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