01 基础版web框架

01 基础版web框架

服务器serverpython程序(基础版):

 

复制代码
 1 import socket
 2 server=socket.socket()
 3 server.bind(("127.0.0.1",8888))
 4 server.listen() 
 5 conn,client_addr=server.accept() 
 6 http_request=conn.recv(1024).decode("utf-8")#接收到的客户端http请求内容
 7 print(http_request) 
 8 #conn.send(b"HTTP/1.1200ok\r\n\r\n")
 9 #conn.send(b"hello")
10 conn.send("HTTP/1.1200ok\r\n\r\nhello".encode())#发送信息前必须先发送协议模式 
11 
12 #socket是应用层和传输层之间的抽象层,每次都有协议,协议就是消息格式,那么传输层的消息格式我们不用管,因为socket帮我们搞定了,但是应用层的协议还是需要咱们自己遵守的,所以再给浏览器发送消息的时候,如果没有按照应用层的消息格式来写,那么你返回给浏览器的信息,浏览器是没法识别的。而应用层的协议就是我们的HTTP协议,所以我们按照HTTP协议规定的消息格式来给浏览器返回消息就没有问题了
复制代码

 

客户端浏览器访问:

 

在浏览器地址栏直接输入地址端口:127.0.0.18888

即可在服务端发起请求:

1.    域名访问的先访问DNS服务器,解析找到对应的IPport

2.    客户端将请求内容通过ip和端口向服务器发送

 

3.    (客户端请求内容在浏览器的控制台Network中查看)

    

 

server端收到的客户端http请求:

请求行(第一行),请求头部,空行(\r\n),请求数据

GET / HTTP/1.1

Host: 127.0.0.1:8888

Connection: keep-alive

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

 

 

请求第一行以空格隔开:

GET          :请求方式

   /             :请求文件路径

HTTP/1.1 :请求的协议及版本号

 

posted @   笑得好美  阅读(207)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
点击右上角即可分享
微信分享提示