国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何判斷HTTP響應(yīng)結(jié)束(何時(shí)可關(guān)閉HTTP連接)

這篇具有很好參考價(jià)值的文章主要介紹了如何判斷HTTP響應(yīng)結(jié)束(何時(shí)可關(guān)閉HTTP連接)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

如何判斷一個(gè)HTTP連接的結(jié)束?

case 1:有Content-Length

依據(jù)Content-Length判斷接收數(shù)據(jù)完成,來(lái)結(jié)束連接。

case2: 請(qǐng)求頭帶Connection字段

2.1?close

表明客戶端或服務(wù)器想要關(guān)閉該網(wǎng)絡(luò)連接,這是 HTTP/1.0 請(qǐng)求的默認(rèn)值。

由server負(fù)責(zé)主動(dòng)關(guān)閉。

2.2 keep-alive

表明客戶端想要保持該網(wǎng)絡(luò)連接打開(kāi),HTTP/1.1 的請(qǐng)求默認(rèn)使用一個(gè)持久連接。

由server負(fù)責(zé)主動(dòng)關(guān)閉。

case3:chunked響應(yīng)

3.1 終止塊

HTTP/1.1 200 OK

Content-Type: text/plain

Transfer-Encoding: chunked

7\r\n

Mozilla\r\n

9\r\n

Developer\r\n

7\r\n

Network\r\n

0\r\n

\r\n

終止塊是一個(gè)長(zhǎng)度為0的分塊,即其是0后面跟著兩個(gè)CRLF。沒(méi)有Trailer,則可以認(rèn)為結(jié)束。(但chunk內(nèi)容可能是二進(jìn)制,所以不能直接匹配最后的兩個(gè)CRLF,需要先匹配每個(gè)chunk的長(zhǎng)度,然后再偏移,逐步找到最后結(jié)束。

3.2 有trailer

HTTP/1.1 200 OK

Content-Type: text/plain

Transfer-Encoding: chunked

Trailer: Expires

7\r\n

Mozilla\r\n

9\r\n

Developer\r\n

7\r\n

Network\r\n

0\r\n

Expires: Wed, 21 Oct 2015 07:28:00 GMT\r\n

\r\n

如果攜帶了trailer(消息頭中可以搜索到Trailer字段),則在終止塊(此時(shí)是單個(gè)CRLF)后,還需要再尋找一個(gè)結(jié)束符(兩個(gè)CRLF)。處理完Trailer之后,可以認(rèn)為結(jié)束。

Trailer頭中絕不能有以下三個(gè)字段:

? ? ? .?Transfer-Encoding

? ? ? . Content-Length

? ? ? . Trailer

case4:? range請(qǐng)求

4.1 206 Partial Content響應(yīng)

4.1.1 包含一個(gè)區(qū)間

有Content-Range,但Content-Type中沒(méi)有multipart。有Content-Length且是resp的完整長(zhǎng)度。可以依據(jù)content-length來(lái)判斷結(jié)束并做close。

HTTP/1.1 206 Partial Content

Content-Range: bytes 21010-47021/47022

Content-Length: 26012

Content-Type: image/gif

4.1.2包含多個(gè)區(qū)間

Content-Type中指明了multipart/byteranges

HTTP/1.1 206 Partial Content

Accept-Ranges: bytes

Content-Type: multipart/byteranges; boundary=3d6b6a416f9b5

Content-Length: 385

--3d6b6a416f9b5

Content-Type: text/html

Content-Range: bytes 100-200/1270

eta http-equiv="Content-type" content="text/html; charset=utf-8" />

? ? <meta name="vieport" content

--3d6b6a416f9b5

Content-Type: text/html

Content-Range: bytes 300-400/1270

-color: #f0f0f2;

? ? ? ? margin: 0;

? ? ? ? padding: 0;

? ? ? ? font-family: "Open Sans", "Helvetica

--3d6b6a416f9b5--

如何判斷結(jié)束?

1. 要判斷是multipart/byteranges,然后獲取到boundary

Content-Type: multipart/byteranges; boundary=3d6b6a416f9b5

2. 利用“--boundary”分割每個(gè)部分(每個(gè)部分內(nèi)容還有content-range字段標(biāo)識(shí)長(zhǎng)度)

最后一個(gè)boundary之后,如何判斷結(jié)束???

在協(xié)議層無(wú)法判斷結(jié)束,只能在業(yè)務(wù)層(比如數(shù)據(jù)本身是結(jié)構(gòu)化的,可判斷結(jié)束的)判斷。

問(wèn)題

1、Transfer-Length和Content-Length不能同時(shí)出現(xiàn)?

Transfer-Length不是HTTP頭字段?是表達(dá)動(dòng)態(tài)長(zhǎng)度的?

2、Transfer-Length和Transfer-Encoding一定同時(shí)出現(xiàn)?

總結(jié)

1、有Transfer-Encoding字段(其值不是identity),則Content-Length字段被忽略。

2、一個(gè)HTTP請(qǐng)求,如果有消息體,但沒(méi)有Content-Length,那么server就應(yīng)該回復(fù)400。

If a request contains a message-body and a Content-Length is not given, the server SHOULD respond with 400 (bad request).

3、Transfer-Encoding vs Content-Encoding

Transfer-Encoding 是一個(gè)逐跳傳輸消息首部,即僅應(yīng)用于兩個(gè)節(jié)點(diǎn)之間的消息傳遞,而不是所請(qǐng)求的資源本身。要將壓縮后的數(shù)據(jù)應(yīng)用于整個(gè)連接,要使用端到端傳輸消息首部 Content-Encoding 。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-524917.html

到了這里,關(guān)于如何判斷HTTP響應(yīng)結(jié)束(何時(shí)可關(guān)閉HTTP連接)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 關(guān)于如何解決Windows10任務(wù)欄無(wú)響應(yīng)問(wèn)題及任務(wù)欄“咨詢(xún)和興趣”功能入口徹底關(guān)閉

    關(guān)于如何解決Windows10任務(wù)欄無(wú)響應(yīng)問(wèn)題及任務(wù)欄“咨詢(xún)和興趣”功能入口徹底關(guān)閉

    作為一名IT小白,在前陣子重裝舊筆記本系統(tǒng)的時(shí)候,碰上一個(gè)非常奇怪的問(wèn)題。新裝的Windows10系統(tǒng)(這里吐槽一下Windows11,果里果氣的,而且操作邏輯用著很不順手)在剛進(jìn)入系統(tǒng)時(shí),會(huì)出現(xiàn)任務(wù)欄無(wú)響應(yīng),鼠標(biāo)放上去一直轉(zhuǎn)圈的情況。這我就很納悶了啊,我以為是我為了

    2024年02月07日
    瀏覽(37)
  • Java EE 網(wǎng)絡(luò)原理之HTTP 響應(yīng)詳解

    Java EE 網(wǎng)絡(luò)原理之HTTP 響應(yīng)詳解

    表示了這次請(qǐng)求對(duì)應(yīng)的響應(yīng),是什么樣的狀態(tài) (成功,失敗,其他的情況,對(duì)應(yīng)的原因…) 這里的狀態(tài)碼非常多,我們需要了解里面常見(jiàn)的狀態(tài)碼 2XX 都表示 成功 200 最常見(jiàn) 3xx 表示 重定向 請(qǐng)求中訪問(wèn)的是 A 這樣的地址,響應(yīng)返回了一個(gè)重定向報(bào)文,告訴你應(yīng)該要訪問(wèn) B 地

    2024年02月03日
    瀏覽(31)
  • 網(wǎng)絡(luò)連接不可用修復(fù)本地連接后窗口不能關(guān)閉的解決辦法

    修復(fù)本地連接,彈出的窗口經(jīng)常關(guān)不掉怎么辦?。繂螕羧∠粹o不起作用怎么辦?如圖: 1、當(dāng)點(diǎn)擊電腦右下角的網(wǎng)絡(luò)連接時(shí),經(jīng)常會(huì)出現(xiàn)修復(fù)彈出框,然后就無(wú)法關(guān)掉。 第一個(gè)解決方法 :調(diào)出任務(wù)管理器——結(jié)束explorer.exe進(jìn)程,然后“應(yīng)用程序”選項(xiàng)卡——新任務(wù)——輸入

    2024年02月07日
    瀏覽(18)
  • 網(wǎng)絡(luò)爬蟲(chóng)——HTTP和HTTPS的請(qǐng)求與響應(yīng)原理

    網(wǎng)絡(luò)爬蟲(chóng)——HTTP和HTTPS的請(qǐng)求與響應(yīng)原理

    目錄 一、HTTP的請(qǐng)求與響應(yīng) 二、瀏覽器發(fā)送HTTP請(qǐng)求的過(guò)程 三、HTTP請(qǐng)求方法 四、查看網(wǎng)頁(yè)請(qǐng)求 五、常用的請(qǐng)求報(bào)頭 六、服務(wù)端HTTP響應(yīng) 七、常用的響應(yīng)報(bào)頭 八、Cookie 和 Session 九、響應(yīng)狀態(tài)碼 十、網(wǎng)頁(yè)的兩種加載方法 十一、認(rèn)識(shí)網(wǎng)頁(yè)源碼的構(gòu)成 十二、爬蟲(chóng)協(xié)議 在如今這個(gè)

    2024年02月08日
    瀏覽(39)
  • 網(wǎng)絡(luò)爬蟲(chóng)-----http和https的請(qǐng)求與響應(yīng)原理

    網(wǎng)絡(luò)爬蟲(chóng)-----http和https的請(qǐng)求與響應(yīng)原理

    ? 目錄 前言 簡(jiǎn)介 HTTP的請(qǐng)求與響應(yīng) 瀏覽器發(fā)送HTTP請(qǐng)求的過(guò)程: HTTP請(qǐng)求主要分為Get和Post兩種方法 查看網(wǎng)頁(yè)請(qǐng)求 常用的請(qǐng)求報(bào)頭 1. Host (主機(jī)和端口號(hào)) 2. Connection (鏈接類(lèi)型) 3. Upgrade-Insecure-Requests (升級(jí)為HTTPS請(qǐng)求) 4. User-Agent (瀏覽器名稱(chēng)) 5. Accept (傳輸文件類(lèi)型) 舉例: 6. Ref

    2024年02月07日
    瀏覽(29)
  • 如何減少 HTTP 響應(yīng)的數(shù)據(jù)大小

    如何減少 HTTP 響應(yīng)的數(shù)據(jù)大小

    資料來(lái)源 : 小林coding 小林官方網(wǎng)站 ?:?小林coding (xiaolincoding.com) 對(duì)于 HTTP 的請(qǐng)求和響應(yīng),通常 HTTP 的響應(yīng)的數(shù)據(jù)大小會(huì)比較大,也就是 服務(wù)器返回的資源會(huì)比較大 。 于是,我們可以考慮對(duì)響應(yīng)的資源進(jìn)行 壓縮 ,這樣就可以減少響應(yīng)的數(shù)據(jù)大小,從而提高網(wǎng)絡(luò)傳輸?shù)男省?/p>

    2024年02月21日
    瀏覽(15)
  • Python處理HTTP響應(yīng)的常用技巧:馴服網(wǎng)絡(luò)野獸的藝術(shù)

    Python處理HTTP響應(yīng)的常用技巧:馴服網(wǎng)絡(luò)野獸的藝術(shù)

    在網(wǎng)絡(luò)世界里,HTTP響應(yīng)就像是一只難以捉摸的野獸。它時(shí)而溫順,提供你想要的數(shù)據(jù);時(shí)而暴躁,給你一個(gè)404或500的錯(cuò)誤碼。作為Python程序員,我們的任務(wù)就是馴服這只野獸,從中提取出有價(jià)值的信息。今天,就讓我們來(lái)探討一下馴服網(wǎng)絡(luò)野獸的常用技巧吧! 1. 捕獲響應(yīng)內(nèi)

    2024年02月20日
    瀏覽(33)
  • 如何獲取HTTP請(qǐng)求時(shí)間與響應(yīng)時(shí)間【附源碼】

    如何獲取HTTP請(qǐng)求時(shí)間與響應(yīng)時(shí)間【附源碼】

    今日遇到了一個(gè)問(wèn)題,要去獲取HTTP報(bào)文在 請(qǐng)求 和 響應(yīng) 的時(shí)間,因?yàn)闆](méi)有原生的API可以調(diào)用,所以需要一定的技巧~ 下面主體的框架和代碼,我使用了form表單去構(gòu)造一個(gè)POST請(qǐng)求,然后在Servlet中重寫(xiě)doPost()方法,然后實(shí)現(xiàn)獲取請(qǐng)求時(shí)間和響應(yīng)時(shí)間的代碼邏輯 我們可以先去觀察

    2024年02月08日
    瀏覽(92)
  • Qt 網(wǎng)絡(luò)編程之美:探索 URL、HTTP、服務(wù)發(fā)現(xiàn)與請(qǐng)求響應(yīng)

    Qt 網(wǎng)絡(luò)編程是使用 Qt 框架進(jìn)行網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)的重要組成部分。Qt 是一個(gè)跨平臺(tái)的 C++ 應(yīng)用程序開(kāi)發(fā)框架,廣泛應(yīng)用于各種領(lǐng)域,包括桌面應(yīng)用、移動(dòng)應(yīng)用和嵌入式設(shè)備。在本文中,我們將探討 Qt 網(wǎng)絡(luò)編程的優(yōu)勢(shì),以及本文涉及的主題,包括 URL、HTTP、服務(wù)發(fā)現(xiàn)和請(qǐng)求響應(yīng)等。

    2023年04月23日
    瀏覽(24)
  • Python運(yùn)行selenium程序執(zhí)行結(jié)束后自動(dòng)關(guān)閉瀏覽器 解決方法 親測(cè)有效

    最近朋友在學(xué)Selenium的時(shí)候遇到一個(gè)問(wèn)題,當(dāng)執(zhí)行完selenium程序后,瀏覽器會(huì)閃退也就是自動(dòng)關(guān)閉,程序中也沒(méi)有寫(xiě)driver.quit()或driver.close()方法,解決后發(fā)布上來(lái)以供學(xué)習(xí)交流。 內(nèi)容比較簡(jiǎn)單,這里直接附上代碼: (1)修改前 (2)修改后:

    2024年02月11日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包