Python筆記之http協議
阿新 • • 發佈:2018-06-22
HA col 傳輸控制協議 soc AC 網上 關閉 ext 等待 http協議的簡介
HTTP,HyperText Transfer Protocol。超文本傳輸協議,是互聯網上應用最為廣泛的一種網絡協議。基於TCP的協議,HTTP是一個客戶端和服務器端請求和應答的標準
TCP三次握手過程
SYN是請求同步的意思,synchronize(同步)的縮寫
ACK是確認同步的意思,acknowledgement(確認)的縮寫
TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務
TCP的三次握手
第一次握手:(客戶端:服務器在嗎?)
建立連接時,客戶端A發生SYN包(SYN=j)到服務器B
並進入SYN_SEND狀態,等待服務器B確認
第二次握手:(服務器:收到了,在的,)
服務器B收到SYN包,必須確認客戶A的SYN,ACK=j+1
同時自己也發送一個SYN包,SYN=k
即,SYN+ACK包,此時服務器進入SYN_RECV狀態
第三次握手:(客戶端:我要發數據了)
客戶端A收到服務器B的SYN+ACK包
向服務器B發送確認包ACK(ACK=k+1)
此包發送完畢,客戶端A和服務器B進入ESTABLISHED狀態,完成三次握手
TCP四次揮手過程
客戶端A發送一個FIN.用來關閉客戶A到服務器B的數據傳送(報文段4)(客戶端:我要關了)
服務器B收到這個FIN. 它發回一個ACK,確認序號為收到的序號+1(報文段5)。和SYN一樣,一個FIN將占用一個序號(服務端:好的,收到)
服務器B關閉與客戶端A的連接,發送一個FIN給客戶端A(報文段6)(服務端:我也要關了)
客戶端A發回ACK報文確認,並將確認序號設置為序號加1(報文段7)(客戶端:好的,收到)
服務器如何復用同一個端口而不會提示端口被占用
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
允許地址重用
str.splitlines()按照行(‘\r‘, ‘\n‘, ‘\r\n‘)分隔,返回一個包含各行作為元素的列表
HTTP,HyperText Transfer Protocol。超文本傳輸協議,是互聯網上應用最為廣泛的一種網絡協議。基於TCP的協議,HTTP是一個客戶端和服務器端請求和應答的標準
SYN是請求同步的意思,synchronize(同步)的縮寫
ACK是確認同步的意思,acknowledgement(確認)的縮寫
TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務
TCP的三次握手
第一次握手:(客戶端:服務器在嗎?)
建立連接時,客戶端A發生SYN包(SYN=j)到服務器B
並進入SYN_SEND狀態,等待服務器B確認
第二次握手:(服務器:收到了,在的,)
服務器B收到SYN包,必須確認客戶A的SYN,ACK=j+1
即,SYN+ACK包,此時服務器進入SYN_RECV狀態
第三次握手:(客戶端:我要發數據了)
客戶端A收到服務器B的SYN+ACK包
向服務器B發送確認包ACK(ACK=k+1)
此包發送完畢,客戶端A和服務器B進入ESTABLISHED狀態,完成三次握手
客戶端A發送一個FIN.用來關閉客戶A到服務器B的數據傳送(報文段4)(客戶端:我要關了)
服務器B收到這個FIN. 它發回一個ACK,確認序號為收到的序號+1(報文段5)。和SYN一樣,一個FIN將占用一個序號(服務端:好的,收到)
服務器B關閉與客戶端A的連接,發送一個FIN給客戶端A(報文段6)(服務端:我也要關了)
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
允許地址重用
Python筆記之http協議