HTTP

  • OSI 七層模型指什么 (難度***)
    OSI(Open System Interconnection), 即開放式系統(tǒng)互聯(lián)通信模型, 層次劃分:


    2016-09-21_142659.png
    1. 應(yīng)用層
      決定了向用戶提供應(yīng)用服務(wù)時的通信活動, 如http, https, ftp就是應(yīng)用層協(xié)議, DNS服務(wù)也位于應(yīng)用層
    2. 傳輸層
      提供處于網(wǎng)絡(luò)鏈接中兩臺計算機的數(shù)據(jù)運輸, 該層的協(xié)議有TCP和UDP協(xié)議
    3. 網(wǎng)絡(luò)層
      決定數(shù)據(jù)傳輸?shù)穆窂? 該層協(xié)議有IP協(xié)議
    4. 鏈路層
      用來處理鏈接網(wǎng)絡(luò)的硬件部分

注意: 其中表示層和會話層已被棄用, 因為應(yīng)用層有類似的功能

  • HTTP 的工作原理是什么额港? (難度***)

    1. 域名解析, 根據(jù)DNS把域名解析成對應(yīng)的IP地址
    2. 根據(jù)http協(xié)議生成請求報文
    3. 根據(jù)TCP協(xié)議將請求報文分割, 以數(shù)據(jù)包的形式發(fā)送
    4. 根據(jù)IP協(xié)議確定傳輸?shù)穆窂?/li>
    5. 服務(wù)器接收到請求報文, 生成響應(yīng), 以同樣的方式返回給客戶端
  • URI 的格式是什么?常見的協(xié)議有哪些 (難度***)

    • URI格式
      例如:
      http://user:pass@www.example.com:80/dir/index.html?uid=1#ch1
      2016-09-21_152210.png

      查詢字符串: 可以傳入任意參數(shù)
      片段標(biāo)識符: 可以標(biāo)記出已獲取資源中的子資源(文檔內(nèi)的某個位置)
    • 常用的協(xié)議
      常用的應(yīng)用層協(xié)議有HTTP, FTP, SSH
  • 狀態(tài)碼200短荐,301叹哭, 304,403,404,500风罩,503分別代表什么意思 (難度****)
    200: OK
    表示成功, 請求被正常處理
    301: Move Permanently
    永久性重定向, 請求的資源已分配了新的URI
    304: Not Modified
    距離上次訪問資源未修改
    403: Forbidden
    沒有權(quán)限, 請求被服務(wù)器拒絕
    404: Not Found
    服務(wù)器上無法找到請求的資源
    500: Internal Server Error
    服務(wù)器執(zhí)行請求發(fā)生錯誤
    503: Service Unavailable
    服務(wù)器處于超負(fù)載或者正在進(jìn)行停機維護

  • 報文有哪幾部分組成舵稠? (可選 難度****)

    • 請求報文組成
      請求行
      請求頭
      空行
      請求體


      2016-09-21_164044.png

      其中空行的主要功能是把請求頭和請求體分開, 空行后就是請求體的內(nèi)容, 例如查詢字符串

name=gqc&age=18&gender=male
- 響應(yīng)報文組成

狀態(tài)行
響應(yīng)頭
空行
響應(yīng)體


2016-09-21_164647.png

其中的響應(yīng)體可能是一個html頁面或其他資源

  • 請求頭的格式和作用是什么?給個范例截圖說明 (可選 難度****)


    2016-09-21_162446.png
    • 格式
      字段名: 字段值
    • 作用
      因為http是無狀態(tài)協(xié)議, 所以, 就需要在請求頭中聲明本次請求的信息和執(zhí)行的動作, 讓服務(wù)器知道你是誰, 你想干什么
  • 首部的格式和作用是什么室琢?給個范例截圖說明 (可選 難度****)


    2016-09-21_172723.png

    chrome的general只是瀏覽器對于本次請求和響應(yīng)的綜述, 是瀏覽器自己生成的, 并不包含在http協(xié)議的內(nèi)容當(dāng)中

    • 請求行


      2016-09-21_172857.png

      請求行的格式為:
      method uri http-version
      請求行的作用:
      描述了請求的方法, 資源的地址和HTTP協(xié)議的版本

    • 狀態(tài)行


      2016-09-21_173326.png

      狀態(tài)行的格式為:
      http-version status status-content
      狀態(tài)行的作用:
      描述本次響應(yīng)的狀態(tài)

  • 主體的作用是什么盈滴?給個范例(可選 截圖說明難度****)

    • 請求體


      2016-09-21_173747.png

      請求體常用的格式querystring, 也可以是json

Content-Type: application/x-www-from-urlencoded
//例如name=gqc&age=18&gender=male

請求體作用:
本次請求的內(nèi)容
- 響應(yīng)體


2016-09-21_185605.png

響應(yīng)體的作用:
返回請求的內(nèi)容, 可能是html, json格式的數(shù)據(jù)或者其他資源

  • 簡述瀏覽器緩存是如何控制的(可選 難度*****)


    2016-09-21_202433.png

    首先, 當(dāng)用戶訪問一個頁面時, 瀏覽器會先判斷是否使用緩存, 如何判斷呢?第一, 根據(jù)Expires, 這是之前服務(wù)器響應(yīng)使傳回來的有效時間,使用的是瀏覽器生成是日期. 第二, 根據(jù)Cache-Control的max-age, 這也是之前服務(wù)器響應(yīng)時返回的最長有效時間, 使用的是秒數(shù), 比Expires的優(yōu)先級更高. 假如在有效期內(nèi), 瀏覽器就使用緩存, 如果在有效期外, 瀏覽器再發(fā)起請求去判斷資源的內(nèi)容是否更新, 主要有兩種方式. 第一, 把之前的Last-Modified作為If-Modified-Since字段的值, 去和服務(wù)器上的Last-Modified判斷. 第二, 把之前ETag的值作為If-None-Match字段的值去和服務(wù)器上的ETag的值進(jìn)行判斷(ETag是文件唯一的字符串, 根據(jù)Hash算法生成). 如果請求資源的內(nèi)容沒有變化, 就使用緩存, 否則請求新的內(nèi)容
    注意:

    1. 如果同時存在, ETag的的優(yōu)先級比Last-Modified的優(yōu)先級更高
      因為ETag的出現(xiàn)就是為了解決Last-Modified的問題, 例如Last-Modified事件只能精確到秒級, 如果文件在短時間內(nèi)多次修改, 例如某些文件會定期生成, 但是內(nèi)容不變等
    2. 如果用戶使用F5刷新的時候, 會忽略Expire/Cache-Control的設(shè)置, 會再次發(fā)送請求去服務(wù)器請求,但是Last-Modified/ETag還是有效的, 如果用戶使用Ctrl+F5, 會進(jìn)行強制刷新, 所有緩存都將失效, 重新去服務(wù)器拉資源

參考:
瀏覽器緩存機制淺析
網(wǎng)站優(yōu)化:瀏覽器緩存控制簡介及配置策略

  • 下圖各個參數(shù)是什么意思(可選 難度*****)


    • General
      這部分是瀏覽器對請求和響應(yīng)的綜述, 是瀏覽器自己生成的, 并不是HTTP協(xié)議的內(nèi)容
      Request URL: 請求資源的URL地址
      Request Method: 請求的方法
      Status Code: 響應(yīng)的狀態(tài)碼
      Remote Address: 請求的IP地址
    • Response Headers
      響應(yīng)頭, chrome展示的內(nèi)容并不是源代碼, 而是瀏覽器美化過后的, 更易閱讀
      Connection: 因為HTTP是無狀態(tài)協(xié)議, 每次請求完成都會關(guān)閉連接, HTTP/1.1 加入的內(nèi)容, 默認(rèn)使用keep-alive持久連接, 即TCP連接默認(rèn)不關(guān)閉
      Content-Length: 響應(yīng)體的長度
      Content-Type: 響應(yīng)體的格式
      Date: 響應(yīng)的時間, 注意, 這里的時間不是北京時間, 而是GMT時間
      Server: 包含服務(wù)器處理請求的軟件的信息
      X-Powered-By: 程序支持, 還有例如PHP/5.3.15
    • Request Headers
      Accept: 接受的響應(yīng)體格式, /表示任何格式都接受
      Accept-Encoding: 接受的編碼格式
      Accept-Language: 接受的語言, zh-CN表示簡體中文, 其中zh;q=0.8表示的是中文的權(quán)重是0.8, 優(yōu)先接受簡體中文
      Connection: 表示持續(xù)鏈接, 不斷開TCP鏈接
      Content-Length: 表示請求體的長度
      Content-Type: 請求體的格式, 現(xiàn)在指定的就是querystring, 表單的默認(rèn)格式
      Cookie: 這是之前訪問的時候服務(wù)器返回的cookie
      Host: 主機名
      Origin: 源, 包括協(xié)議名, 主機名, 端口號
      Referer: 包括了之前從那個網(wǎng)頁到當(dāng)前地址, 包括了歷史記錄信息
      User-Agent: 表示使用的用戶代理的字符串
      X-Requested-With: 判斷請求是AJax請求還是傳統(tǒng)請求
    • Form Data
      包含了querystring字符串由瀏覽器解析后的內(nèi)容
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市疗垛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贷腕,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞒斩,死亡現(xiàn)場離奇詭異,居然都是意外死亡济瓢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門旺矾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人箕宙,你說我怎么就攤上這事〖砼粒” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵陷寝,是天一觀的道長。 經(jīng)常有香客問我凤跑,道長,這世上最難降的妖魔是什么仔引? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮翘簇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘版保。我一直安慰自己义桂,他們只是感情好找筝,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布慷吊。 她就那樣靜靜地躺著,像睡著了一般溉瓶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上堰酿,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機與錄音触创,去河邊找鬼。 笑死岩馍,一個胖子當(dāng)著我的面吹牛碉咆,可吹牛的內(nèi)容都是我干的蛀恩。 我是一名探鬼主播疫铜,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼双谆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了顽馋?” 一聲冷哼從身側(cè)響起骂远,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤氓轰,失蹤者是張志新(化名)和其女友劉穎新翎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愁拭,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡亏吝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年蔚鸥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馆类。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡乾巧,死狀恐怖预愤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旷太,我是刑警寧澤销睁,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布标沪,位于F島的核電站金句,受9級特大地震影響吕嘀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜趁曼,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一棕洋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧摄悯,春花似錦愧捕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽禾进。三九已至,卻和暖如春贩绕,著一層夾襖步出監(jiān)牢的瞬間壶愤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工娇哆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人治力。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓宵统,卻偏偏與公主長得像覆获,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子痊班,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

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

  • 一涤伐、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,373評論 6 152
  • Http協(xié)議詳解 標(biāo)簽(空格分隔): Linux 聲明:本片文章非原創(chuàng)凝果,內(nèi)容來源于博客園作者M(jìn)IN飛翔的HTTP協(xié)...
    Sivin閱讀 5,226評論 3 82
  • 本文整理自MIN飛翔博客 [1] 1. 概念 協(xié)議是指計算機通信網(wǎng)絡(luò)中兩臺計算機之間進(jìn)行通信所必須共同遵守的規(guī)定或...
    HoyaWhite閱讀 2,677評論 2 20
  • 工作流程 一次HTTP操作稱為一個事務(wù)豆村,其工作過程可分為四步: 1)首先客戶機與服務(wù)器需要建立連接骂删。只要單擊某個超...
    保川閱讀 4,617評論 2 14
  • /*--------------------------- 01 HTTP請求 -----------------...
    藍(lán)心兒的藍(lán)色之旅閱讀 2,167評論 0 4