http協議理解4

2021-10-12 17:45:57 字數 2709 閱讀 9416

1. 101 客戶端使用upgrade欄位,要求在http的基礎上改為其他協議例如websocket來繼續進行通訊,伺服器如果同意 就會傳送101狀態碼1. 200 一切正常。

2. 204 一切正常。沒有返回body資料2. 302 臨時重定向。資源位址臨時改變了到了某個位址(如伺服器維護),有伺服器發起,cdn不會做快取優化

1. 304 重定向到了快取的檔案(例如cdn快取的檔案)。1. 400 乙個比較籠統的錯誤碼,一般是引數錯誤。

2. 401 登入過期

3. 403 無許可權訪問

4. 404 沒有找到資源,但是已經被用爛了

5. 405 請求方法錯誤

6. 406 資源不能滿足客戶端需求,例如 只有中文資源,請求的是英文

7. 408 請求超時了 伺服器處理了太長時間

8. 409 多個請求併發應引起了竟態 衝突

9. 413 body傳輸的位元組太多例如上傳過大

10. 414 請求行的url 太大 超過了最大的長度

11. 429 客戶端傳送了太多的請求, 通常是伺服器的限連策略。

12. 431 請求頭head 某個欄位過大或者整體過於大1. 500 乙個比較籠統的錯誤碼,服務端錯誤。 可以防止黑客分析

2. 501 功能尚未開發, 敬請期待

3. 502 閘道器錯誤 或者**錯誤 例如nginx錯誤

4. 503 比較當前伺服器很忙, 但是待會兒可能就可以正常訪問了 通常還有乙個retry-after欄位,表示這個待會兒的具體時間

tcp/ip協議是乙個可靠地傳輸協議,依賴它可以在下層使用多種手段保證資料保證能夠完整的送達。

http是乙個應用層的協議, 但是基本上是乙個「萬能」的協議。

請求-應答模式是http協議的根本的通訊模型

請求方和應答方的角色也不是絕對的,例如1,伺服器擔任了**伺服器的角色,就可以扮演兩個角色;2,伺服器推送,也可以顛倒角色。

沒有記憶功能, 這次的請求和上次請求沒有一點關係

只能借助於head中cookie等快取手段來解決這個問題

1. 多用途網際網路郵件擴充套件 mime 是個很大的資料型別標準,http只順手牽羊去了其中一部分,就是 mime type; 列舉幾個:

2.encoding type 文字壓縮的格式 需要用什麼方式解碼 常見的有三種:

http協議為了資料型別和編碼 定義了兩個accept 請求頭字段和兩個content響應實體頭欄位

1.客戶端 accept 請求頭欄位

2.服務端 content響應實體頭欄位

解決了國際化的問題 引入了兩個概念 : 語言型別和字符集

1.語言型別 en en-us en-gb

2.字符集

早期世界各地的人們各自為政, 發明了很多的編碼來處理文字,例如 英文:ascll,漢語gbk,big5 日語 shift_jis

最後出現了統一世界的語言unicode 和改進版本utf-8 ,utf-8已經統一世界了。

1. accept-language 用來表示客戶端可以理解的自然語言

2. content-language 表示服務端實體資料實際返回使用的自然語言

3. accept-charset 用來表示客戶端可以理解的字符集

4. 用來表示服務端的返回內容使用的字符集 是content-type的第二段說明 例如 content-type:text/css; charset=utf-8使用q值來說明權重 優先順序

內容協商時不透明的,伺服器會在響應頭里多加乙個vary欄位來說明是依據哪幾個欄位來返回了報文,例如:

vary: accept-encoding,user-agent,accept 服務端根據這三個字段返回了報文

accept-encoding和content-encoding決定了那種壓縮格式

使用chunked 來分成小塊傳輸 瀏覽器收到在組裝復原,狀態碼為206 ,報文字段為transfer-encoding: chunked;

無法使用content-length欄位 ,和transfer-encoding是互斥的.

請求字段: range:bytes=0-31

響應字段 content-range: bytes 0-31/96 ;content-length:32 ;accept-range: bytes

成功狀態碼為206,範圍不合法會返回416

斷點續傳也是基於此技術

範圍請求一次只支援獲取乙個片段, 其實還可以在請求頭里range使用多個x-y,一次獲取多個片段資料

這個時候需要乙個特殊的mime型別 multipart/byteranges 並且還要使用乙個引數 boundary=***給出段分隔標記

請求字段: range:bytes=0-31,100-131

響應字段 content-type: multipart/byteranges boundary=00000001 ;content-length:64 ;accept-range: bytes; connection:keep-alive

Http協議理解

http是hypertext transfer protocal 超文字傳輸協議 的簡寫,它是tcp ip協議集中的乙個應用層協議,用於定義web瀏覽器與web伺服器之間交換資料的過程以及資料本身的格式。http 1.0是早期版本,當前版本是http 1.1,http ng處於試驗階段,是下一代的h...

理解HTTP協議

http協議,超文字傳輸協議hyper text transfer protocol的縮寫,用於從全球資訊網伺服器傳輸超文字到本地瀏覽器的協議。它基於tcp ip通訊協議來傳輸資料 html檔案,查詢結果等 http協議屬於應用層。它允許傳輸任意型別的資料物件,正在傳輸的型別由content typ...

HTTP協議理解

http hyper text transfer protocol 超文字傳輸協議,是一種請求響應式協議,類似兩國會晤中需要遵守的規則。那麼,其中有什麼內容特點呢?http特點 1 支援客戶端 伺服器模式 瀏覽器也是一種客戶端 2 夠簡單,所以夠快速 3 夠靈活,傳輸什麼型別的資料都能適應 4 無狀...