HTTP長連線---requests的長連線
使用HTTP協議時,為了充分利用資源,經常會用到http的長連線,也就是底層tcp連線的複用。
在requests庫中,HTTP的長連線是通過Session會話實現的。
會話物件讓你能夠跨請求保持某些引數。它也會在同一個 Session 例項發出的所有請求之間保持 cookie, 期間使用 urllib3 的 connection pooling 功能。所以如果你向同一主機發送多個請求,底層的 TCP 連線將會被重用,從而帶來顯著的效能提升。
HTTP persistent connection, also called HTTP keep-alive, or HTTP connection reuse, is the idea of using a single TCP connection to send and receive multiple HTTP requests/responses, as opposed to opening a new connection for every single request/response pair. The newer HTTP/2 protocol uses the same idea and takes it further to allow multiple concurrent requests/responses to be multiplexed over a single connection.
下面舉例說明,如何使用requests的Session:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import time
url="http://172.20.29.116:5140"
payload=[{'mesg': 'one'},{'mesg':'two'}]
s = requests.Session()
r = s.post(url, data=payload)
print r.headers
print r.status_code
print r.content
while True:
time.sleep(10 )
$ netstat -anp | grep 5140
..... .... ... ...5140 ESTABLISHED
使用Session傳送HTTP請求後,可以看到,連線依然是ESTABLISHED。
而不使用Session的情況,則是傳送HTTP請求後,連線即斷開。下次傳送請求又要重新建立連線。
注意
要使用長連線,需注意,只有所有的響應體資料被讀取完畢連線才會被釋放為連線池;所以確保將 stream 設定為 False 或讀取 Response 物件的 content 屬性。
所謂stream,是指響應體內容工作流,預設情況下,當你進行網路請求後,響應體會立即被下載。可以通過設定stream為False,推遲下載響應體直到訪問Response.content。
預設情況下, stream是False。使用長連線時,預設即可。
另外,長連線是需要server端支援的,如果server端不支援(例如django server本身是不支援的,每次接收request,處理完成後,就斷開連線),則client設定了也是沒有用的。
參考:
相關推薦
HTTP長連線---requests的長連線
使用HTTP協議時,為了充分利用資源,經常會用到http的長連線,也就是底層tcp連線的複用。 在requests庫中,HTTP的長連線是通過Session會話實現的。 會話物件讓你能夠跨請求保持某些引數。它也會在同一個 Session 例項發出的所有
http和Tcp的長連線和短連線
轉自:https://www.cnblogs.com/fubaizhaizhuren/p/7523374.html http協議和tcp/ip 協議的關係 (1) http是應用層協議,tcp協議是傳輸層協議,ip協議是網路協議。 (2) IP協議主要解決網路路由和定址問題 (3)
go實現高效tcp伺服器(適合短連線)類似fasthttp,長連線的每個連線分配一個協程(標準庫中的http)
package main import ( "fmt" "net" "os" "time" ) const ( MAX_CONN_NUM = 10 ) //服務處理函式,如果處理過程過於複雜,可以啟動一定量的協程來做(協程
Http長連線及短連線
一、HTTP協議與TCP/IP協議的關係 HTTP的長連線和短連線本質上是TCP長連線和短連線。HTTP屬於應用層協議,在傳輸層使用TCP協議,在網路層使用IP協議。 IP協議主要解決網路路由和定址問題,TCP協議主要解決如何在IP層之上可靠地傳遞資料包,
tcp長連線,短連線,http短輪詢,長輪詢
短連線和長連線: 長輪詢和短輪詢 所謂輪詢,即是在一個迴圈週期內不斷髮起請求來得到資料的機制。只要有請求的地方,都可以實現輪詢,譬如各種事件驅動模型。它的長短是在於請求的返回週期。 短輪詢 短輪詢指的是在迴圈週期內,不斷髮起請求,每一次請求都立即
TCP(HTTP)長連線和短連線區別和怎樣維護長連線
一、HTTP協議和TCP協議 HTTP的長連線和短連線本質上是TCP長連線和短連線。HTTP屬於應用層協議,在傳輸層使用TCP協議,在網路層使用IP協議。IP協議主要解決網路路由和定址問題,TCP協議
HTTP長連線和短連線
1. HTTP協議與TCP/IP協議的關係 HTTP的長連線和短連線本質上是TCP長連線和短連線。HTTP屬於應用層協議,在傳輸層使用TCP協議,在網路層使用IP協議。IP協議主要解決網路路由和定址問題,TCP協議主要解決如何在IP層之上可靠的傳遞資料包,使在網路上的另一端收到發端發出的所有包,並且順序
HTTP 長連線和短連線
1. HTTP協議與TCP/IP協議的關係 HTTP的長連線和短連線本質上是TCP長連線和短連線。HTTP屬於應用層協議,在傳輸層使用TCP協議,在網路層使用IP協議。IP協議主要解決網路路由和定址問題,TCP協議主要解決如何在IP層之上可靠的傳遞資料包,使在網路上
HTTP的長連線和短連線
本文總結&分享網路程式設計中涉及的長連線、短連線概念。 關鍵字:Keep-Alive,併發連線數限制,TCP,HTTP 一、什麼是長連線 HTTP1.1規定了預設保持長連線(HTTP persistent connection ,也
http長連線、長輪詢的理解
昨天翻了翻《HTTP權威指南》,看到HTTP連線管理這節,書中講到了HTTP事務,突然發現事務一詞在好多場合都用到了,事務簡單來說就是一連串的事情,要麼都做,要麼都不做,中間出了問題,整個過程都失敗,對於HTTP事務就是域名解析 --> 發起TCP的3次握手 --&g
談談HTTP協議中的短輪詢、長輪詢、長連線和短連線
--------------------- 作者:左瀟龍 來源:CSDN 原文:https://blog.csdn.net/zuoxiaolong8810/article/details/65441709 版權宣告:本文為博主原創文章,轉載請附上博文連結!
HTTP長連線、短連線究竟是什麼?
1. HTTP協議與TCP/IP協議的關係 HTTP的長連線和短連線本質上是TCP長連線和短連線。HTTP屬於應用層協議,在傳輸層使用TCP協議,在網路層使用IP協議。 IP協議主要解決網路路由和定址問題,TCP協議主要解決如何在IP層之上可靠地傳遞資料包,使得網路上接收端
Http長連線、短連線、持久連線這三個概念的分析總結
什麼是Http長連線 長連線定義: client方與server方先建立連線,連線建立後不斷開,然後再進行報文傳送和接收。這種方式下由於通訊連線一直存在。此種方式常用於P2P點對點的通訊。 長連線的操作步驟是:建立連線——資料傳輸...(保持連線)...資料傳輸——關閉
雜談——HTTP長連線、短連線以及長短輪詢
1.什麼是長連線、短連線? 在HTTP/1.0中,預設使用的是短連線。也就是說,瀏覽器和伺服器每進行一次HTTP操作,就建立一次連線,任務結束就中斷連線。如果客戶端瀏覽器訪問的某個HTML或其他型別的 Web頁中包含有其他的Web資源,如JavaScript檔案、影象檔案、CSS檔案等,每遇
HTTP 長連線與短連線
1. HTTP協議與TCP/IP協議的關係 HTTP的長連線和短連線本質上是TCP長連線和短連線。HTTP屬於應用層協議,在傳輸層使用TCP協議,在網路層使用IP協議。IP協議主要解決網路路由和定址問題,TCP協議主要解決如何在IP層之上可靠的傳遞資料包,使在網路上
Java網路程式設計(一) TCP/IP,http,socket,長連線,短連線
TCP/IP TCP/IP是個協議組,可分為三個層次:網路層、傳輸層和應用層。 在網路層有IP協議、ICMP協議、ARP協議、RARP協議和BOOTP協議。 在傳輸層中有TCP協議與UDP協議。 在應用層有:TCP包括FTP、HTTP、TELNET、SMTP等協議
TCP(HTTP)長連線和短連線的區別以及怎樣維護長連線
一、HTTP協議和TCP協議HTTP的長連線和短連線本質上是TCP長連線和短連線。HTTP屬於應用層協議,在傳輸層使用TCP協議,在網路層使用IP協議。IP協議主要解決網路路由和定址問題,TCP協議主要
【Web基礎】HTTP長連線和短連線以及推送技術原理
HTTP長連線和短連線 1. HTTP協議與TCP/IP協議的關係 HTTP的長連線和短連線本質上是TCP長連線和短連線。HTTP屬於應用層協議,在傳輸層使用TCP協議,在網路層使用IP協議。IP協議主要解決網路路由和定址問題,TCP協議主要解決
HTTP的長連線(持久連線)和短連線
本文總結&分享網路程式設計中涉及的長連線、短連線概念。 關鍵字:Keep-Alive,併發連線數限制,TCP,HTTP 一、什麼是長連線 HTTP1.1規定了預設保持長連線(HTTP persistent connection ,也
HTTP長連線和短連線以及推送技術原理
建立連線——資料傳輸——關閉連線...建立連線——資料傳輸——關閉連線長連線的操作步驟是: 建立連線——資料傳輸...(保持連線)...資料傳輸——關閉連線4. 長連線和短連線的優點和缺點 由上可以看出,長連線可以省去較多的TCP建立和關閉的操作,減少浪費,節約時間。對於頻繁請求資源的客