http服務器三:自己寫一個服務器實現轉發功能


一:寫一個服務器socket與瀏覽器進行交互

服務器收數據

server.py

from socket import *


server_socket = socket(AF_INET,SOCK_STREAM)

server_socket.bind(("127.0.0.1",10012))

server_socket.listen(128)

client_socket,client_address = server_socket.accept()

recv_data = client_socket.recv(1024)


print("接收的數據是",recv_data.decode("gbk"))


# 瀏覽器發送 127.0.0.1:10012后打印

接收的數據是 GET / HTTP/1.1
Host: 127.0.0.1:10012
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Sec-Fetch-Site: none
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9

 

 

 

服務器給瀏覽器發數據

假如我訪問的是 127.0.0.1:10012?a=1,server的socket怎么接收到這個參數呢?

postman訪問服務端打印的數據

GET /?a=1 HTTP/1.1
User-Agent: PostmanRuntime/7.24.1
Accept: */*
Cache-Control: no-cache
Postman-Token: 8cd656c8-5e2b-47e8-bac7-7d551fd20e48
Host: 127.0.0.1:10012
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

 

瀏覽器訪問服務端打印的數據

GET /?a=1 HTTP/1.1
Host: 127.0.0.1:10012
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Sec-Fetch-Site: none
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9

 

服務器獲取到查詢參數

 

 

 

 

 

 

 

 

 

 

 

# TODO


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM