日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HTTP协议(1)—HTTP的连接

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTTP协议(1)—HTTP的连接 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、TCP連接 過程:
a.瀏覽器解析出主機名
b.瀏覽器查詢出這個主機名的IP地址
c.瀏覽器獲得端口號
d.瀏覽器發起到ip:port的連接(TCP連接)
e.瀏覽器向服務器發送一條HTTP報文
f.瀏覽器從服務器讀取HTTP響應報文
g.瀏覽器關閉連接
1.TCP的可靠數據管道
從TCP連接一端填入的字節會從另一端以原有的順序、正確地傳送出來

2.TCP流是分段的,由IP分組傳送
HTTP會以流的形式將報文數據的內容通過一條打開的TCP連接按序傳輸,TCP收到數據流之后會把數據流砍成被稱作段的小數據塊,并將段分裝在IP分組中,通過因特網進行傳輸
3.保持TCP連接的正確運行
通過端口號來保持連接的正確運行
TCP連接的識別:
<源IP地址、源端口號、目標IP地址、目標端口號>
二、對TCP性能的考慮 1.HTTP事務的時延
主要原因:
a.DNS查詢
b.TCP連接請求
c.服務器處理http報文
d.服務器回送http響應

3.性能聚焦區域
a.TCP連接的握手延時
i.請求新的連接時,客戶端向服務器端發送一個TCP分組,設置SYN標記
ii.服務器接收連接,會對一些連接參數進行計算,并回送一個TCP分組,包含SYN+ACK標記
iii.最后客戶端向服務器端回送一條確認信息ACK,通知服務器連接已建立

b.延遲確認
TCP可以將確認信息和輸出的數據分組一起發送出去,TCP現將確認信息存放在緩沖區中,利用延遲算法等待輸出的數據分組

c.TCP慢啟動
起初會限制連接的最大速度,然后數據成功傳輸,隨著時間的推移會提高傳輸的速度

d.Nagle算法與TCP_NODELAY
.應用程序可以將任意大小的數據放入TCP棧中,但如果TCP將大量小數據放入TCP棧中會嚴重影響網絡性能
.Nagle算法試圖在發送數據之前將大量TCP數據綁定在一起
.只有其他分組都確認以后,Nagle算法才會發送非全尺寸的分組
.小的http報文無法填滿一個分組,Nagel算法會進行等待那些永遠不會到來的額外數據而產生延遲,影響性能
.Nagle算法會阻止數據的發送,直到有數據分組為止
.HTTP應用程序會設置TCP_NODELAY來禁用Nagle算法
e.TIME_WAIT累積與端口耗盡
.TCP會在內存中維護一個小的控制塊并且存儲最近所關閉的IP地址和端口號,這類信息會維持2秒鐘(2MSL),以處理連接關閉4步中的任一步
丟失的情況
.客戶端每次連接上服務器時都會獲得一個新的源端口,以實現連接的唯一性

三、HTTP連接的處理 1.常被誤解的Connection首部
a.Connection首部可以承載3種不同類型的標簽
.HTTP首部字段名,列出了只與此連接有關的首部
.任意標簽值,用于描述此連接的非標準選項
.值close,說明完成此操作之后需關閉這條持久連接

b.HTTP應用程序收到帶有Connection首部的請求時,接收端會解析發送的請求,在轉發給下一跳之前刪除Connection首部

2.串行事務處理延時
a.并行連接
通過多條TCP連接發起并發的HTTP請求

b.持久連接
重用TCP連接,以消除連接及關閉的延時

c.管道化連接
通過共享的TCP連接發起并發的HTTP請求

d.復用的連接
交替傳送請求和響應

四、并發連接 HTTP允許客戶端打開多條連接,并行的執行多個HTTP連接(可以在多臺服務器上進行連接)

1.并行連接可能會提高頁面的加載速度

2.并行連接不一定快
.客戶端網絡帶寬不足
.打開大量連接會消耗很多內存資源,從而引發自身的性能問題
.瀏覽器會將并發連接數限制為一個較小的值

五、持久連接 .應用程序發起同一臺服務器的多次連接
.HTTP11允許HTTP設備在事務處理結束之后仍然保持正在打開的狀態

1.持久以及并行連接
a.并行連接缺點
.每個事務都會打開/關閉一條新的連接,會耗費時間和帶寬
.由于TCP慢啟動的存在,每條新連接的性能都會降低
.可打開的并行連接數量實際上是有限的

b.持久連接的兩種類型
HTTP/1.0 + keep-Alive連接
HTTP/1.1 + persistent連接

2.?HTTP/1.0 + keep-Alive連接
3.Keep-Alive操作
客戶端包含Connection:Keep-Alive首部,如果服務器愿意為下一條連接請求保持打開狀態,就在響應中包含相同的首部,如果沒有,客戶端
會在發送響應報文后關閉連接

4.Keep-Alive選項
.timeout
服務器希望將連接保持在活躍狀態的時間
.max
服務器還希望為多少個事務保持此連接的活躍狀態

5.持久連接
HTTP1.1默認支持持久連接
要在事務完成后關閉連接可以在首部加入Connection-Close

6.持久連接的限制和規則
.發送了Connection-Close首部后,客戶端就無法在那條連接上發送更多請求了 .只有當實體部分的長度和相應的Content-Length一致,或者用分塊傳輸編碼連接才能保
持持久連接
.HTTP1.1的代理能夠分別管理與客戶端和服務器的持久連接,每個持久連接只適合于一
跳傳輸
.HTTP1.1設備可以在任意時刻關閉連接
.HTTP1.1應用程序必須能夠從異步關閉中恢復過來

六、管道化連接 將多條請求放入隊列,當第一條請求發送時,第二、三條請求跟著發送

七、關閉連接的奧秘 1.正常關閉連接
a.完全關閉與半關閉
完全關閉:關閉TCP連接的輸入輸出(close())
半關閉:關閉輸入或輸出的一邊(shutdown)

b.TCP關閉及重置錯誤
關閉連接的輸出信道總是安全的 關閉連接的輸入信道不安全,當另一端向其發送數據時,會產生TCP連接重置,并會清空操
作系統緩沖區

c.正常關閉

總結

以上是生活随笔為你收集整理的HTTP协议(1)—HTTP的连接的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。