前端面試準備--4.HTTP協(xié)議

HTTP協(xié)議

1.HTTP協(xié)議的主要特點

  • 簡單快速

每個資源uii都是固定的,一個頁面地址一張圖片叫做統(tǒng)一資源符余爆,這個是固定的斋配, 所以在http協(xié)議中處理也是非常簡單的。我想訪問某一個地址苛预,只要輸入這個uii就可以了句狼;

  • 靈活

在http協(xié)議中有一個頭部分會有一個數(shù)據(jù)類型,通過一個http協(xié)議就可以完成不同數(shù)據(jù)類型的傳輸热某。

  • 無連接

連接一次它就會斷掉腻菇,不會保持連接;

  • 無狀態(tài)

客戶端和服務(wù)端是兩種身份昔馋,客戶端需要向服務(wù)端請求一個圖片筹吐,那么http協(xié)議建立連接,幫你中間傳輸秘遏。這次任務(wù)完成以后丘薛,連接就要斷開了,下次客戶端再過來服務(wù)端是沒法區(qū)分上一次連接和這一次連接是不是同一個身份邦危。因為服務(wù)端是沒有記住你的狀態(tài)的洋侨。單從http協(xié)議上是不能區(qū)分兩次連接者的身份的。

2.HTTP報文的組成部分(有請求有回應(yīng))

瀏覽器向服務(wù)器要一個html文檔或者一個圖片倦蚪,輸入了www.immoc.com(訪問慕課網(wǎng)輸入的uii地址)希坚,相當于客戶端發(fā)出的請求報文;發(fā)出去了陵且,服務(wù)端接收到了以后做出響應(yīng)裁僧,要不要給你這份文檔的內(nèi)容,這個就是響應(yīng)報文慕购;

  • 請求報文:

    • 請求行(GET/HTTP/1.1)
      包含:http方法聊疲、頁面地址、http協(xié)議沪悲、版本
    • 請求頭
      key获洲、value值來告訴服務(wù)端要那些內(nèi)容,注意哪些類型
    • 空行
      當遇到空行就知道不在是請求頭部分了殿如,就該當請求體來解析了
    • 請求體
  • 響應(yīng)報文:

    • 狀態(tài)行(HTTP/1.1 200OK--http狀態(tài)碼)
    • 響應(yīng)頭
      key贡珊、value值來告訴服務(wù)端要那些內(nèi)容,注意哪些類型
    • 空行
    • 響應(yīng)體
      比如:給的html文檔就是響應(yīng)體部分

3.HTTP方法

    GET-------------獲取資源
    POST------------傳輸資源
    PUT-------------更新資源
    DELETE----------刪除資源(一般做業(yè)務(wù)是不刪除資源的)
    HEAD------------獲取報文首部

4.POST和GET的區(qū)別

   **1握截、GET在瀏覽器回退時是無害的飞崖,而POST會再次提交請求
     2、 GET產(chǎn)生的URL地址可以被收藏谨胞,而POST不可以
   **3固歪、 GET請求會被瀏覽器主動緩存,而POST不會,除非手動設(shè)置
     4牢裳、 GET請求只能進行url編碼逢防,而POST支持多種編碼方式
   **5、 GET請求參數(shù)會被完整保留在瀏覽器歷史記錄里蒲讯,而POSt中的參數(shù)不會被保留
     --想把參數(shù)留在瀏覽器歷史記錄里用GET忘朝,做業(yè)務(wù)開發(fā)的時候為了防止crsf攻擊,公司里都把GET請求
改成POST判帮,如果業(yè)務(wù)需要把參數(shù)留在瀏覽器歷史記錄中記得把POST改成GET;
   **6局嘁、 GET請求在URL中傳送的參數(shù)是有長度限制的(2kb),而POST沒有限制
     --如果用的是GET請求晦墙,拼接的url不要太長悦昵,否則會被瀏覽器截斷,因為http協(xié)議對這個長度是
有限制的晌畅,發(fā)不出去但指,導(dǎo)致截斷這種情況,一旦被截斷抗楔,你的服務(wù)器拿不到正確的地址棋凳。
     7、對參數(shù)的數(shù)據(jù)類型连躏,GET只接受ASCII字符剩岳,而POST沒有限制
     8、GET比POST更不安全反粥,因為參數(shù)直接暴露在URL上卢肃,所以不能用來傳遞敏感信息
   **9疲迂、GET參數(shù)通過URL傳遞才顿,POST放在Request body中

5.HTTP狀態(tài)碼

    1xx: 提示信息--表示請求已接收,繼續(xù)處理
    
    2xx:成功--表示請求已被成功接收
    
        200 OK:客戶端請求成功
        206 Partial Content:客戶端發(fā)送了一個帶有Range(范圍)頭的GET請求尤蒿,服務(wù)器完成了它
        (客戶端請求一部分內(nèi)容郑气,在http head頭中有一個range范圍,請求0-10000字節(jié)腰池,服務(wù)器就
返回一個206尾组,服務(wù)器的文件是完整的,這個時候看到range頭示弓,按照range頭從整個文件中截取一部分響應(yīng)
給你讳侨,你響應(yīng)體中只有你range頭中指定的內(nèi)容)
  使用video播放視頻地址,audio播放音頻地址奏属,當視頻文件跨跨、音頻文件很大的時候基本都是返回的206;
   
    3xx:重定向--要完成請求必須進行更進一步的操作
    
        301 Moved Permanently:(永久重定向)所請求的頁面已經(jīng)轉(zhuǎn)移至新的url
        302 Found:            (臨時重定向)所請求的頁面已經(jīng)臨時轉(zhuǎn)移至新的url
        304 Not Modified:     客戶端有緩沖的文檔并發(fā)出了一個條件性的請求,服務(wù)器告訴客戶,
原來緩沖的文檔還可以繼續(xù)使用。
        --服務(wù)器告訴瀏覽器已經(jīng)有緩存了勇婴,可以直接從緩存中去取文檔用忱嘹,不用去服務(wù)器取了
            
    4xx:客戶端錯誤--請求有語法錯誤或請求無法實現(xiàn)
    
        400 Bad Request:客戶端請求有語法錯誤,不能被服務(wù)器所理解耕渴;
        401 Unauthorized:請求未經(jīng)授權(quán)拘悦,這個狀態(tài)代碼必須和WWW-Authenticate報頭域一起使用;
        403 Forbidden:對被請求頁面的訪問被禁止;(資源禁止被訪問)
            --看到一個頁面中一個地址橱脸,這個地址真的訪問又不允許直接訪問础米,只能通過服務(wù)器去訪問;
        404 Not Found:請求資源不存在;
    
    5xx:服務(wù)器錯誤--服務(wù)器未能實現(xiàn)合法的請求
    
        500 Internal Server Error:服務(wù)器發(fā)生不可預(yù)期的錯誤原來緩沖的文檔還可以繼續(xù)使用添诉;
        503 Server Unavailable:請求未完成椭盏,服務(wù)器臨時過載或當機,一段時間后可能恢復(fù)正常吻商;

6.HTTP持久連接(HTTP是支持持久連接的掏颊,1.1版本才支持,HTTP 1.0版本不支持)

  • 非持久連接:

    HTTP協(xié)議采用“請求--應(yīng)答”模式艾帐,當使用普通模式乌叶,即非Keep-Alive(持久連接)模式時,每個請求/應(yīng)答客戶端和服務(wù)器都要新建一個連接柒爸,完成之后立即斷開連接(HTTP協(xié)議為無連接的協(xié)議)准浴;

  • 持久連接:

    當使用Keep-Alive模式(持久連接、連接重用)時捎稚,Keep-Alive功能使客戶端到服務(wù)器端的連接持續(xù)有效乐横,當出現(xiàn)對服務(wù)器的后繼請求時,Keep-Alive 功能避免了建立或者重新建立連接今野。

7.什么是管線化
(請求和響應(yīng)共用一個通道葡公,這個通道是持久建立的,不是我請求一次你響應(yīng)一次条霜,而是把請求打包一次傳輸過去催什,你也打包一次響應(yīng)過來)

    在使用持久連接的情況下,某個連接上消息的傳遞類似于:
    --請求1-->響應(yīng)1-->請求2-->響應(yīng)2-->請求3-->響應(yīng)3(表示整個連接沒有中斷過)
    
    某個連接上的消息變成了類似這樣:(持久連接情況下完成的管線化)
    請求1-->請求2-->請求3-->響應(yīng)1-->響應(yīng)2-->響應(yīng)3
    
    1.管線化機制通過持久連接完成宰睡,僅HTTP/1.1支持此技術(shù);
    2.只有GET和HEAD請求可以進行管線化蒲凶,而POST則有所限制;
    3.初次創(chuàng)建連接時不應(yīng)啟動管線機制,因為對方(服務(wù)器)不一定支持HTTP/1.1版本的協(xié)議;
    4.管線化不會影響響應(yīng)到來的順序拆内,如上面的例子所示旋圆,響應(yīng)返回的順序并未改變;
    5.HTTP/1.1要求服務(wù)器端支持管線化,但并不要求服務(wù)器端也對響應(yīng)進行管線化處理麸恍,只是要
      求對于管線化的請求不失敗即可;
   6.由于上面提到的服務(wù)器端問題灵巧,開啟管線化很可能并不會帶來大幅度的性能提升,而且很多服務(wù)器端
 和代理程序?qū)芫€化的支持并不好,因此現(xiàn)代瀏覽器如 Chrome 和 Firefox 默認并未開啟管線化支持孩等;
    
    
總結(jié):  1.工作原理:將請求響應(yīng)打包回來艾君;
          特點:通過持久連接完成,需要HTTP/1.1支持肄方;
        2.只有GET和HEAD請求可以進行管線化冰垄,POST有所限制;
        3.連接的時候不要啟動管線限制权她,因為對方可能不支持虹茶;(這是初次連接的時候)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市隅要,隨后出現(xiàn)的幾起案子蝴罪,更是在濱河造成了極大的恐慌,老刑警劉巖步清,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件要门,死亡現(xiàn)場離奇詭異,居然都是意外死亡廓啊,警方通過查閱死者的電腦和手機欢搜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谴轮,“玉大人炒瘟,你說我怎么就攤上這事〉诓剑” “怎么了疮装?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長粘都。 經(jīng)常有香客問我廓推,道長,這世上最難降的妖魔是什么驯杜? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任受啥,我火速辦了婚禮做个,結(jié)果婚禮上鸽心,老公的妹妹穿的比我還像新娘。我一直安慰自己居暖,他們只是感情好顽频,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著太闺,像睡著了一般糯景。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天蟀淮,我揣著相機與錄音最住,去河邊找鬼。 笑死怠惶,一個胖子當著我的面吹牛涨缚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播策治,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼脓魏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了通惫?” 一聲冷哼從身側(cè)響起茂翔,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎履腋,沒想到半個月后珊燎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡遵湖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年俐末,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奄侠。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡卓箫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出垄潮,到底是詐尸還是另有隱情烹卒,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布弯洗,位于F島的核電站旅急,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏牡整。R本人自食惡果不足惜藐吮,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望逃贝。 院中可真熱鬧谣辞,春花似錦、人聲如沸沐扳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沪摄。三九已至躯嫉,卻和暖如春纱烘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背祈餐。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工擂啥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人帆阳。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓啤它,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舱痘。 傳聞我的和親對象是個殘疾皇子变骡,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

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