01 基础版web框架
2024-09-07 14:42:37
01 基础版web框架
服务器server端python程序(基础版):
import socket
server=socket.socket()
server.bind(("127.0.0.1",8888))
server.listen()
conn,client_addr=server.accept()
http_request=conn.recv(1024).decode("utf-8")#接收到的客户端http请求内容
print(http_request)
#conn.send(b"HTTP/1.1200ok\r\n\r\n")
#conn.send(b"hello")
conn.send("HTTP/1.1200ok\r\n\r\nhello".encode())#发送信息前必须先发送协议模式 #socket是应用层和传输层之间的抽象层,每次都有协议,协议就是消息格式,那么传输层的消息格式我们不用管,因为socket帮我们搞定了,但是应用层的协议还是需要咱们自己遵守的,所以再给浏览器发送消息的时候,如果没有按照应用层的消息格式来写,那么你返回给浏览器的信息,浏览器是没法识别的。而应用层的协议就是我们的HTTP协议,所以我们按照HTTP协议规定的消息格式来给浏览器返回消息就没有问题了
客户端浏览器访问:
在浏览器地址栏直接输入地址端口:127.0.0.1:8888
即可在服务端发起请求:
1. 域名访问的先访问DNS服务器,解析找到对应的IP和port
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 :请求的协议及版本号
最新文章
- JavaScript 数组中的 indexOf 方法
- 使用dom元素和jquery元素实现简单增删改的练习
- C#操作word模板插入文字、图片及表格详细步骤
- work_queue 函数调用栈
- MySQL主存复制与读写分离的感悟
- hdu 4081 最小生成树+树形dp
- WebAPi性能
- BZOJ 1416: [NOI2006]神奇的口袋( 高精度 )
- 【.net 深呼吸】WPF 中的父子窗口
- canvas图表详解系列(4):动态散点图
- 宝宝巴士-自动化团队-纵世科技-Wiger-原创分享-QQ:18630195
- SAP HUM事务代码 HUMAT 之初探
- linux报错汇总
- 潭州课堂25班:Ph201805201 django 项目 第九课 图片验证码前台实现,判断用户是否注册功能实现 (课堂笔记)
- windows系统上利用putty通过SSH连接亚马逊AWS服务器
- Django之MVC和MTV
- [转]SQL数据库查询到的汉字字段是乱码
- L2-013. 红色警报
- 对java中继承、接口、组合的思考
- Java开发资料汇编