http基礎

  • OSI 七層模型指什么
    OSI:Open System Interconnection moble。是一個由國際標準化組織提出來的概念模型,共一個使各種不同的計算機在網絡和世界范圍內實現互聯的標準框架,它將計算機網絡體系結構分為七層,每層都提供良好的接口。如圖(維基百科):


    osi七層網絡協議
  1. 物理層:負責最后將信息編碼或其他信號在網上傳輸,如網線、網卡等....
  2. 數據鏈路層:它定義了在單個鏈路上如何傳輸數據
  3. 網絡層:網絡層負責在源和終點之間建立連接
  4. 傳輸層:向用戶提供可靠的端到端的網絡數據流服務
  5. 會話層:組織和協調兩個會話進程之間的通信,并對數據交換進行管理
  6. 表示層:處理用戶信息的表示問題,定義數據格式和加密解密
  7. 應用層:是計算機及各種應用程序網絡之間的接口,直接向用戶提供服務,完成用戶希望在網絡上完成的工作。

  • HTTP 的工作原理是什么?
  1. 客戶端跟服務器建立一個TCP連接
  2. 通過建立的TCP連接,客戶端向服務器發送請求報文
  3. 服務器接收到請求后給予響應:包括服接解析請求,定位請求資源,將資源副本寫入TCP連接,由客戶端讀取
  4. 瀏覽器解析結果:將響應的信息通過瀏覽器顯示在用戶的屏幕上然后客戶端和服務器斷開連接

  • URI 的格式是什么?常見的協議有哪些

URI是統一資源標識符,而URL是它的一個子集,通用格式為:
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<hash>

  • scheme:對于web頁面來說最常用的協議就是http和https
  • user和password現在不常見,不會在URL明文書寫用戶名和密碼,都是通過登錄的方式
  • host:主機可以是IP地址或者域名
  • port端口號用來區分主機進程,方便找到web服務器,http默認是80
  • path是資源的路徑,也是存放位置,不一定和物理路徑完全對應,符合web服務器路由約定即可
  • params在一些協議中需要參數來訪問資源,例如ftp是二進制還是文本傳輸, 參數是名值對,用;隔開
  • query是get請求最常用的傳遞參數方式了 ?a=1&b=2&c=3
  • hash也成為片段,設計為標識文檔的一部分(很多mvvw框架用作路由)

  • HTTP 協議有幾種和服務器交互的方法

    • get:最常用的方法,用來獲取服務器資源
    • post:一般用來表單提交,更新服務器資源
    • put:和get相反,向服務器寫入資源,由于安全問題服務器一般不支持
    • delete:刪除請求的URL,由于安全問題服務器一般不支持
    • head:和get請求類似,不過不是請求資源。而是請求信息(資源類型、大小、是否存在...)
    • trace:會在目標服務器發送一個閉環診斷,查看發送的請求都經過哪些節點,有沒有被修改
    • options:獲取服務器支持的方法

  • 狀態碼200,301, 304,403,404,500,503分別代表什么意思

    • 200:表示一切正常,請求成功
    • 301:表示用戶請求文檔已經被永久性改變位置
    • 304:表示請求的網頁未發生改變,可繼續使用緩存
    • 403:一般表示有資源卻無權限訪問
    • 404:無法找到指定位置請求的資源
    • 500:表示后臺服務器出現錯誤,無法處理請求
    • 503:表示服務器超載,無法處理請求

  • 報文有哪幾部分組成?
    HTTP報文是簡單的格式化數據,每個報文都包含一條來自客戶端的信息或者一條來自服務器的信息,由三個部分組成:
  1. 對報文進行描述的起始行 ———— start line
  2. 包含屬性的首部塊 ———— header
  3. 可選的包含數據的主體部分 ———— body

  • 請求頭的格式和作用是什么?給個范例截圖說明


    請求頭格式
    • Accept:客戶端可接受的類型
    • Accept-Encoding:客戶端接受的壓縮編碼
    • Accept-Language:客戶端接受的語言
    • Cache-Control:客戶端接受的緩存控制
    • Connection:告知服務器連接
    • Host:請求的主機名,允許多個域名同處一個IP地址,即虛擬主機
    • User-Agent:產生請求的瀏覽器類型

  • 首部的格式和作用是什么?給個范例截圖說明


    首部的格式
    • Request URL:請求的域名
    • Request Method:請求的方法
    • Status Code:狀態碼
    • Remote Address:接受的遠程服務器地址和端口號

  • 主體的作用是什么?給個范例


    主體

主體就是客戶端和服務端之間傳輸的主要內容,一般是圖片、視頻、HTML文檔等。


  • 簡述瀏覽器緩存是如何控制的

    • Cache-control:在HTTP頭部設置Cache-control來控制緩存的時間,等時間到了緩存失效,單位為秒,如:Cache-control: max-age=5 表示當訪問此網頁后的5秒內不會去再次訪問服務器

    • Expires:設置緩存的失效日期,在過期時間以內,若再次發起請求,通常瀏覽器都不會與服務器進行任何通信,而是直接使用本地副本。當 Expires 和 Cache-Control 同時出現時,通常后者會覆蓋前者的設定

    • Last-Modified:在瀏覽器第一次請求某一個URL時,服務器端的返回狀態會是200,內容是你請求的資源,同時有一個Last-Modified的屬性標記(HttpReponse Header)此文件在服務期端最后被修改的時間,客戶端第二次請求此URL時,根據HTTP協議的規定,瀏覽器會向服務器傳送If-Modified-Since報頭(HttpRequest Header),詢問該時間之后文件是否有被修改過,如果服務器端的資源沒有變化,則自動返回HTTP304(NotChanged.)狀態碼,內容為空,這樣就節省了傳輸數據量。當服務器端代碼發生改變或者重啟服務器時,則重新發出資源,返回和第一次請求時類似。從而保證不向客戶端重復發出資源,也保證當服務器有變化時,客戶端能夠得到最新的資源。

    • ETag:使用 ETag 驗證緩存的響應,Etag是服務器自動生成或者由開發者生成的對應資源在服務器端的唯一標識符,能夠更加準確的控制緩存。

    優先級:Cache-Control/Expires的優先級要高于Last-Modified/ETag。即當本地副本根據Cache-Control/Expires發現還在有效期內時,則不會再次發送請求去服務器詢問修改時間(Last-Modified)或實體標識(Etag)了。

    更多可參考博客1 | 參考博客2


  • 本博客版權歸羞澀的澀和饑人谷所有,轉載請注明出處
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內容