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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python网络编程—TCP套接字之HTTP传输

發布時間:2024/8/26 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python网络编程—TCP套接字之HTTP传输 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

HTTP協議 (超文本傳輸協議)

1.用途 : 網頁獲取,數據的傳輸

2.特點:

  • 應用層協議,傳輸層使用tcp傳輸
  • 簡單,靈活,很多語言都有HTTP專門接口
  • 無狀態,協議不記錄傳輸內容
  • http1.1 支持持久連接,豐富了請求類型

3.網頁請求過程

  • 客戶端(瀏覽器)通過tcp傳輸,發送http請求給服務端
  • 服務端接收到http請求后進行解析
  • 服務端處理請求內容,組織響應內容
  • 服務端將響應內容以http響應格式發送給瀏覽器
  • 瀏覽器接收到響應內容,解析展示
  • HTTP請求(request)

    1.請求行 : 具體的請求類別和請求內容

    • GET / HTTP/1.1
    • 請求類別 請求內容 協議版本

    請求類別:每個請求類別表示要做不同的事情

    • GET : 獲取網絡資源
    • POST :提交一定的信息,得到反饋
    • HEAD : 只獲取網絡資源的響應頭
    • PUT : 更新服務器資源
    • DELETE : 刪除服務器資源
    • CONNECT
    • TRACE : 測試
    • OPTIONS : 獲取服務器性能信息

    2.請求頭:對請求的進一步解釋和描述

    • Accept-Encoding: gzip

    3.空行

    4.請求體: 請求參數或者提交內容

    1 from socket import * 2 3 s = socket() 4 s.bind(('0.0.0.0',8001)) 5 s.listen(3) 6 c,addr = s.accept() 7 print("Connect from",addr) 8 data = c.recv(4096) 9 print(data) 10 11 data = """HTTP/1.1 200 OK 12 Content-Type:text/html 13 14 <h1>Hello world</h1> 15 """ 16 c.send(data.encode()) 17 18 c.close() 19 s.close() http 請求響應示例

    http響應(response)

    響應格式:響應行,響應頭,空行,響應體

    響應行 : 反饋基本的響應情況

    • HTTP/1.1 200 OK
    • 版本信息 響應碼 附加信息

    響應碼 :

    • 1xx 提示信息,表示請求被接收
    • 2xx 響應成功
    • 3xx 響應需要進一步操作,重定向
    • 4xx 客戶端錯誤
    • 5xx 服務器錯誤

    響應頭:對響應內容的描述

    • Content-Type: text/html

    響應體:響應的主體內容信息

    1 from socket import * 2 3 # 處理客戶端請求 4 def handle(connfd): 5 request = connfd.recv(4096) # 接收請求 6 # 防止客戶端斷開request為空 7 if not request: 8 return 9 request_line = request.splitlines()[0] 10 info = request_line.decode().split(' ')[1] 11 if info == '/': 12 with open('index.html') as f: 13 response = "HTTP/1.1 200 OK\r\n" 14 response += "Content-Type:text/html\r\n" 15 response += '\r\n' 16 response += f.read() 17 else: 18 response = "HTTP/1.1 404 Not Found\r\n" 19 response += "Content-Type:text/html\r\n" 20 response += '\r\n' 21 response += "<h1>Sorry...</h1>" 22 # 發送給瀏覽器 23 connfd.send(response.encode()) 24 25 26 # 搭建tcp網絡 27 sockfd = socket() 28 sockfd.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) 29 sockfd.bind(('0.0.0.0',8000)) 30 sockfd.listen(3) 31 while True: 32 connfd,addr = sockfd.accept() 33 handle(connfd) # 處理客戶端請求 http 發送網頁給瀏覽器

    ?

    轉載于:https://www.cnblogs.com/maplethefox/p/10989040.html

    總結

    以上是生活随笔為你收集整理的Python网络编程—TCP套接字之HTTP传输的全部內容,希望文章能夠幫你解決所遇到的問題。

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