20 HTTP 長連線與短連線

2022-10-09 13:12:09 字數 1703 閱讀 2074

紙上得來終覺淺,絕知此事要躬行。

never give up until the fight is over.

永遠不要放棄,要一直戰鬥到最後一秒。

短連線指通訊雙方有資料互動時,就建立乙個tcp連線,資料傳送完成後,則斷開此tcp連線。

http的長連線和短連線本質上是tcp長連線和短連線。

http屬於應用層協議,在傳輸層使用tcp協議,在網路層使用ip協議。

ip協議主要解決網路路由和定址問題,tcp協議主要解決如何在ip層之上可靠的傳遞資料報。

從http/1.1起,預設使用長連線,用以保持連線特性。使用長連線的http協議,會在響應頭有加入這行**:connection:keep-alive

短連線操作步驟是:

連線→資料傳輸→關閉連線;

長連線通常就是:

連線→資料傳輸→保持連線(心跳)→資料傳輸→保持連線(心跳)→……→關閉連線

長連線:

多用於操作頻繁,點對點的通訊,而且連線數不能太多情況.

如資料庫連線

短連線web**的http服務。長連線更加耗費伺服器資源。bulabula..

把握分寸,是一種難得的智慧型。那些能看到別人優點的人,往往懂得把別人放在心上,時刻照顧別人的感受。他們會在一言一語中放低自己的姿態,讓別人感受到關心和尊重。

人與人之間,不過一場以心換心。學會欣賞別人,別人才會欣賞你。對他人適時地讚美,不需要多麼高超的說話技巧,比技巧更重要的是真誠。真心實意、以誠相待,永遠是人際交往中最基本的準則。

hashmap

concurrenthashmap

hashtable

執行緒是否安全,以及實現執行緒安全的方式

hashmap不安全

執行緒安全,concurrenthashmap

jdk1.7底層採用分段鎖,對整個桶數進行了分割分段(segment),

每一把鎖只鎖容器其中一部分資料,提高併發訪問率。

jdk 1.8 底層採用 node陣列 + 鍊錶 + 紅黑樹的結構實現,

併發控制使用了 synchronized 和 cas 操作。

執行緒安全,底層採用synchronized 來保證執行緒安全,

直接是方法級別的加鎖, concurrenthashmap 雖然也是 synchronized

但它是對鍊錶或者紅黑樹的頭節點進行加鎖,鎖的粒度更小

底層工作原理

底層採用的是 陣列 + 鍊錶

concurrenthashmap

jdk 1.7 底層採用 分段的陣列 + 鍊錶實現。

jdk 1.8 採用的是 陣列 + 鍊錶/紅黑樹

底層採用的是 陣列 + 鍊錶

空值問題

hashmap允許使用null值(key和value)都可以。

但是這樣的鍵只有乙個,可以有乙個或多個鍵所對應的值為null

hashtable不允許null值(key和value都不可以)

初始容量、擴容與預設負載因子

hashmap 預設初始大小 16,每次擴容 2n,預設負載因子是0。75

hashtable 預設初始大小為11,每次擴容 2n+1

hashmap、hashtable、treemap、linkedhashmap、concurrenthashmap

你好,我是yltrcc,日常分享技術點滴,歡迎關注我:ylcoder

HTTP 長連線 與 短連線

一,什麼是長連線 http1.1規定了預設保持長連線 http persistent connection 也有翻譯為持久連線 資料傳輸完成了保持tcp連線不斷開 不發rst包 不四次握手 等待在同網域名稱下繼續用這個通道傳輸資料 相反的就是短連線。http首部的connection keep al...

http 長連線 短連線

http短連線 非持久連線 是指,客戶端和服務端進行一次http請求 響應之後,就關閉連線。所以,下一次的http請求 響應操作就需要重新建立連線。http長連線 持久連線 是指,客戶端和服務端建立一次連線之後,可以在這條連線上進行多次請求 響應操作。持久連線可以設定過期時間,也可以不設定。http...

Http 長連線 短連線 長輪詢 短輪詢

短連線 每次http請求都會建立tcp連線,管理容易 長連線 只需要建立一次tcp連線,以後http請求重複使用同乙個tcp連線,管理難 http1.1規定了預設保持長連線 http persistent connection 也有翻譯為持久連線 資料傳輸完成了保持tcp連線不斷開 不發rst包 不...