1. 程式人生 > >HTTP協議:不可小覷的Content-Length

HTTP協議:不可小覷的Content-Length

Content-Length首部告訴瀏覽器報文中實體主體的大小。這個大小是包含了內容編碼的,比如對檔案進行了gzip壓縮,Content-Length就是壓縮後的大小(這點對我們編寫伺服器非常重要)。除非使用了分塊編碼,否則Content-Length首部就是帶有實體主體的報文必須使用的。使用Content-Length首部是為了能夠檢測出伺服器崩潰而導致的報文截尾,並對共享持久連線的多個報文進行正確分段。

1)檢測截尾

HTTP的早期版本採用關閉連線的辦法來劃定報文的結束。但是,沒有Content-Length的話,客戶端無法區分到底是報文結束時正常的關閉連線還是報文傳輸中由於伺服器崩潰而導致的連線關閉。客戶端需要通過Content-Length來檢測報文截尾。

報文截尾的問題對快取代理伺服器來說尤為重要。如果快取伺服器收到被截尾的報文卻沒有識別出截尾的話,它可能會儲存不完整的內容並多次使用他來提供服務。快取代理伺服器通常不會為沒有顯式Content-Length首部的HTTP主體做快取,以此來減小快取已截尾報文的風險。

2)Content-Length與持久連線

Content-Length首部對於持久連結是必不可少的。如果響應通過持久連線傳送,就可能有另一條HTTP響應緊隨其後。客戶端通過Content-Length首部就可以知道報文在何處結束,下一條報文從何處開始。因為連線是持久的,客戶端無法依賴連線關閉來判斷報文的結束。

有一種情況,使用持久連線可以沒有Content-Length首部,即採用分塊編碼(chunked encoding)時。在分塊編碼的情況下,資料是分為一系列的塊來發送的,沒塊都有大小說明。哪怕伺服器在生成首部的時候不知道整個實體的大小(通常是因為實體是動態生成的),仍然可以使用分塊編碼傳輸若干已知大小的塊。

相關推薦

HTTP協議不可小覷Content-Length

Content-Length首部告訴瀏覽器報文中實體主體的大小。這個大小是包含了內容編碼的,比如對檔案進行了gzip壓縮,Content-Length就是壓縮後的大小(這點對我們編寫伺服器非常重要)。除非使用了分塊編碼,否則Content-Length首部就是帶有實體主體的報文必須使用的。使用Conten

HTTP協議Content-Type

POST提交資料之---Content-Type的理解;    Content-Type是指http/https傳送資訊至伺服器時的內容編碼型別,contentType用於表明傳送資料流的型別,伺服器根據編碼型別使用特定的解析方式,獲取資料流中的資料。 在網路請求中,常用的C

HTTP協議菜鳥入門系列》

數據 www spa tar 自動化 方向 blog sco 就會 很多測試人員在有了一定的測試經驗(一般是1-2年)後,就會陷入瓶頸階段,想提升,但不知道如何提升,學習又沒有比較明確的方向,曾經我也是。。。 那麽,我建議系統的學習一下HTTP協議,好處很多:對接口測試、性

org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body

傳送http請求給後端服務,在資料量大的時候報錯: org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body (expected: 144445481;

上傳文件報錯Warning: POST Content-Length of 9443117 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

The lin clas php 但是 exce 小文件 情況 lan 只需在php.ini中設置: upload_max_filesize = 1000M; post_max_size = 1000M;還有一種情況就是小文件可以上傳成功,但是大文件上傳,$_FILES

趣談網路協議---HTTP協議看個新聞原來這麼麻煩

HTTP 請求的準備 將域名傳送給DNS伺服器,解析為IP地址。然後建立TCP連線。HTTP協議大部分為1.1,預設開啟Keep-Alive,建立的TCP連線可在多次請求中複用。 HTTP請求的構建

網路協議 12 - HTTP 協議常用而不簡單

系列文章傳送門: 網路協議 1 - 概述 網路協議 2 - IP 是怎麼來,又是怎麼沒的? 網路協議 3 - 從物理層到 MAC 層 網路協議 4 - 交換機與 VLAN:辦公室太複雜,我要回學校 網路協議 5 - ICMP 與 ping:投石問路的偵察兵 網路協議 6 - 路由協

HTTP協議pipeline、持久連線、非持久連線

一、HTTP持久連線、非持久連線 1.1 定義       1. 非持久連線:每個連線處理一個請求-響應事務。       2. 持久連線:每個連線可以處理多個請求-響應事務。             持久連線情況下,伺服器發出響應後讓TCP連線繼續開啟著。同一對客戶/伺服

HTTP協議安全頭部X-Content-Type-Options引入的問題

原文地址:http://www.jackieathome.net/archives/369.html?utm_source=tuicool&utm_medium=referral 前段時間測試MM反饋了一個問題,在富文字編輯器裡上傳的圖片無法正常呈現。因為J

HTTP 協議中的 Transfer-Encoding和Content-Length區別

原文出處 Transfer-Encoding,是一個 HTTP 頭部欄位,字面意思是「傳輸編碼」。實際上,HTTP 協議中還有另外一個頭部與編碼有關:Content-Encoding(內容編碼)。Content-Encoding 通常用於對實體內容進行壓縮編碼,目的是優化傳輸,例如用 gzi

Http協議Content-Length

Http協議Content-Length 2016年08月30日 22:27:12 技術從未如此性感 閱讀數:409 版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u013749540/article/details/5

http協議content-length 以及chunked編碼分析

轉載請註明出處 http://blog.csdn.net/yankai0219/article/details/8269922  0.序 1.http/1.1協議中與chunked編碼的相關欄位 1)Entity Body 2)Content-length 3)Messa

Eclipse4.6安裝Tomcat插件時報錯Unable to read repository at http://tomcatplugin.sf.net/update/content.xml. Received fatal alert: handshake_failure

logs tomcat repos cef blog 時報 技術分享 src tom 錯誤如下: Unable to read repository at http://tomcatplugin.sf.net/update/content.xml.Received fat

Python爬蟲HTTP協議、Requests庫

.org clas python爬蟲 print 通用 娛樂 信息 傳輸協議 介紹 HTTP協議: HTTP(Hypertext Transfer Protocol):即超文本傳輸協議。URL是通過HTTP協議存取資源的Internet路徑,一個URL對應一個數據資源。

分針網——每日分享HTTP協議理解與應用總結

http 應用總結 領取免費IT資料 加群:272292492 更多文章:www.f-z.cn Request & Response Re

基於HTTP協議的輕量級開源簡單隊列服務HTTPSQS[轉]

海量數據 短信 最大 ima 站內搜索 功能 .html 調用 python HTTPSQS(HTTP Simple Queue Service)是一款基於 HTTP GET/POST 協議的輕量級開源簡單消息隊列服務,使用 Tokyo Cabinet 的 B+Tree K

WAF——針對Web應用發起的攻擊,包括但不限於以下攻擊類型SQL註入、XSS跨站、Webshell上傳、命令註入、非法HTTP協議請求、非授權文件訪問等

授權 文件訪問 http協議 火墻 針對 str sql 包括 fire 核心概念 WAF Web應用防火墻(Web Application Firewall),簡稱WAF。 Web攻擊 針對Web應用發起的攻擊,包括但不限於以下攻擊類型:SQL註入、XSS跨站、Websh

HTTP協議(一)介紹

ans html 通過 www. cat hyper res lan 了解 HTTP協議(一):介紹 RFC 2616定義了今天普遍使用的一個版本——HTTP 1.1。HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)

》》HTTP 方法GET 對比 POST《《JavaSpringMVC基礎知識Http協議()

ipa .com 常用 code 有關 strong 註意 part html_ http://www.w3school.com.cn/tags/html_ref_httpmethods.asp 兩種最常用的 HTTP 方法是:GET 和 POST。 —————————

python接口自動化測試一http協議

連接 -- lencod 本機 新的 ext 種類 默認 nec 1、 http簡介:http(超文本傳輸協議)是一個基於請求與響應模式的、無狀態的、應用層的協議 2、 url詳解:百度搜索的一個url地址:https://www.baidu.com/s?wd=%E4