标签:recv 分享图片 格式 文件读取 客户 import 服务器 .so http协议
1.浏览器上输入一个网址回车后都发生了什么?
(1)浏览器相当于一个客户端,将域名翻译成ip,浏览器给服务端发送一个消息。
(2)服务端拿到消息
(3)服务端返回消息
(4)浏览器展示页面
2.客户端和服务端的消息格式是约定好的
浏览器这个客户端和我们写的server想要实现通信,同样的需要走一个协议,这个规约就是HTTP协议
3.HTTP
浏览器和服务器之间约定好的消息格式通信协议
4.web本质示例
(1)手写的server端
# web本质 示例 import socket sk = socket.socket() sk.bind((‘127.0.0.1‘, 8000)) sk.listen(5) while 1: conn, addr = sk.accept() conn.recv(1024) conn.send(b‘HTTP/1.1 200 OK\r\n\r\n‘) # 按照http协议的格式发送消息 # conn.send(b‘hello world!‘) # 发送到浏览器客户端的内容 # conn.send(b‘<h1>hello world!</h1>‘) # 发送到浏览器客户端的内容 #conn.send(b‘HTTP/1.1 200 OK\r\n\r\nhello world!‘) # 按照http协议的格式发送消息 # 从文件读取 with open(‘data.html‘, ‘rb‘) as f: msg = f.read() conn.send(msg) # 发送到浏览器客户端的内容 conn.close()
(2)data.html内容为
<h1>hello world!</h1>
(3)可以用浏览器访问服务端的ip地址,服务端按照http通信的规则返回一个html给浏览器,浏览器就展示出来了这个html的内容
(4)同时,我们写好一个html后,也可以直接用浏览器打开。
5.web本质
服务端
客户端浏览器
HTML文件
Django这种web框架,就是怎么去返回不同的html
标签:recv 分享图片 格式 文件读取 客户 import 服务器 .so http协议
原文地址:https://www.cnblogs.com/whylinux/p/9943079.html