最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java?HttpURLConnection類的disconnect方法與http長連接詳解

 更新時間:2024年04月29日 08:40:04   作者:苦蕎米  
這篇文章主要介紹了java?HttpURLConnection類的disconnect方法與http長連接,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

disconnect方法

java 自帶的HttpURLConnection類有個關閉連接的方法disconnect(),是用于關閉http連接的,但是有一個問題在于,http連接一直都是一次性的,不存在復用的可能性,所以當輸入流和輸出流關閉后,http請求過程也就結束了,為什么還需要這個方法?

java代碼對該方法的說明如下:并沒有提到關閉請求釋放資源的說明,而是說調(diào)用該方法意味著一段時間之內(nèi)不會再向目標機器發(fā)起請求,并且又強調(diào)了一遍HttpURLConnection類是不可復用的。

看到這段描述,我就想到了該方法應該是和長連接有關的。

/**
* Indicates that other requests to the server
* are unlikely in the near future. Calling disconnect()
* should not imply that this HttpURLConnection
* instance can be reused for other requests.
*/
public abstract void disconnect();

http長連接

在http1.1版本以及之后的相關版本中,connection默認是keep-alive,意思即是在http請求結束后保持tcp連接不斷開以便下一次請求復用,也就是http長連接,但是著要求請求放和服務端都支持,所以有理由懷疑disconnect()方法與http長連接有關,但是著需要驗證。

http長連接測試

為此搭建了一個簡易spring boot項目作為測試,這里http協(xié)議使用是1.1版本,默認保持長連接模式。首先看一下正常的http請求過程中tcp連接狀態(tài)的變化。

注:因為發(fā)起請求的一方在請求結束后程序就關閉了,所以不管有沒有調(diào)用斷開連接的方法,tcp連接都會在程序結束后斷開。

在發(fā)起http請求后確立tcp連接,由于是本地調(diào)用,所以能看到有兩個tcp連接記錄,但是其實是同一個鏈接。

在程序結束后發(fā)起tcp請求的一方斷開了鏈接,接受的一方進入了TIME_WAIT狀態(tài),這是防止丟包的準備關閉連接的狀態(tài)。

然后在調(diào)用方加上了Thread.sleep()方法,讓調(diào)用方發(fā)起請求后程序不結束。

但是發(fā)現(xiàn)不管有沒有有執(zhí)行disconnect()方法,tpc連接的狀態(tài)都是一樣的,就是在http請求結束后的一段時間內(nèi),tcp連接依然是確認狀態(tài),在持續(xù)數(shù)十秒后,tcp連接就關閉了,并沒有發(fā)現(xiàn)監(jiān)聽狀態(tài)。

結論

并沒有發(fā)現(xiàn)HttpURLConnection類的disconnect()方法在保持http長連接中有任何作用(也有可能是spring boot服務需要專門設計才能支持長連接),似乎該方法本身就沒有任何作用。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 實現(xiàn)Java刪除一個集合的多個元素

    實現(xiàn)Java刪除一個集合的多個元素

    Java中的For each實際上使用的是iterator進行處理的。而iterator是不允許集合在iterator使用期間刪除的。而我在for each時,從集合中刪除了一個元素,這導致了iterator拋出了ConcurrentModificationException,下面來看看到底怎么回事。
    2016-08-08
  • 一篇文章帶你了解JVM垃圾回收

    一篇文章帶你了解JVM垃圾回收

    這篇文章主要介紹了JVM的種垃圾回收,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-08-08
  • 使用Java將DOCX文檔解析為Markdown文檔的代碼實現(xiàn)

    使用Java將DOCX文檔解析為Markdown文檔的代碼實現(xiàn)

    在現(xiàn)代文檔處理中,Markdown(MD)因其簡潔的語法和良好的可讀性,逐漸成為開發(fā)者、技術寫作者和內(nèi)容創(chuàng)作者的首選格式,然而,許多文檔仍然以Microsoft Word的DOCX格式保存,本文將介紹如何使用Java和相關庫將DOCX文檔解析為Markdown文檔,需要的朋友可以參考下
    2025-04-04
  • Springboot之restTemplate配置及使用方式

    Springboot之restTemplate配置及使用方式

    這篇文章主要介紹了Springboot之restTemplate配置及使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • SpringBoot實現(xiàn)WebSocket的示例代碼

    SpringBoot實現(xiàn)WebSocket的示例代碼

    這篇文章主要為大家詳細介紹了SpringBoot實現(xiàn)WebSocket的相關知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-11-11
  • SpringCloud Alibaba框架介紹

    SpringCloud Alibaba框架介紹

    spring cloud是一個基于springboot實現(xiàn)的微服務架構開發(fā)工具,目前主流的SpringCloud分為SpringCloud Netflix和阿里云開源的SpringCloud Alibaba兩個系列,本文主要介紹SpringCloud Alibaba框架,感興趣的朋友可以參考一下
    2023-04-04
  • Java中transient關鍵字的詳細總結

    Java中transient關鍵字的詳細總結

    本文要介紹的是Java中的transient關鍵字,transient是短暫的意思。對于transient 修飾的成員變量,在類的實例對象的序列化處理過程中會被忽略,感興趣的朋友可以參考閱讀
    2023-04-04
  • JavaWeb文件上傳與下載功能解析

    JavaWeb文件上傳與下載功能解析

    這篇文章主要為大家詳細介紹了JavaWeb文件上傳與下載功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • springboot中bootstrap配置無效的解決方案

    springboot中bootstrap配置無效的解決方案

    在Spring Boot中,從4.4.1版本開始,spring-cloud-starter-bootstrap的配置加載默認為關閉狀態(tài),需要在pom文件中引入依賴并在Spring Boot配置文件中開啟spring.cloud.bootstrap.enabled配置,或者在啟動命令中使用--spring.cloud.bootstrap.enabled=true參數(shù)開啟
    2026-04-04
  • SpringBoot3安全管理操作方法

    SpringBoot3安全管理操作方法

    這篇文章主要介紹了SpringBoot3安全管理,在實際開發(fā)中,最常用的是登錄驗證和權限體系兩大功能,在登錄時完成身份的驗證,加載相關信息和角色權限,在訪問其他系統(tǒng)資源時,進行權限的驗證,保護系統(tǒng)的安全,文中有詳細的操作步驟,需要的朋友可以參考下
    2023-08-08

最新評論

吉林省| 桓台县| 平遥县| 锦州市| 弥渡县| 崇义县| 武定县| 芮城县| 锡林浩特市| 个旧市| 和林格尔县| 壤塘县| 石林| 盐池县| 靖宇县| 沧州市| 阿鲁科尔沁旗| 思南县| 磐安县| 瓦房店市| 名山县| 成都市| 西贡区| 宜宾市| 太谷县| 利川市| 永德县| 内江市| 三亚市| 兰溪市| 吴堡县| 西和县| 溧水县| 孝感市| 磐安县| 望江县| 昆山市| 钟祥市| 苗栗县| 文化| 本溪|