文章目录
HTTP协议和静态编辑器
1、网址
1.1、含义
网络资源地址
1.2、URL组成
1、协议部分 http://
2、域名:baidu.com
3、资源路径
4、查询参数部分
2、http协议的介绍
http协议是规定浏览器和web服务器之间通讯的数据格式
2.1、HTTP协议的概念及作用
HTTP协议:超文本传输协议,它是一个基于TCP传输协议传输数据的,它是浏览器和web服务器传输数据的一个协议(http)
超文本是指在带有链接的文本数据即网页
TCP传输协议是用来保证网络中传输数据的安全性的,HTTP是用来规定这些数据的具体格式的。
2.2、浏览器访问web服务器的过程
3、HTTP请求报文
3.1、HTTP最常见的请求报文有两种
GET:获取Web服务器数据
POST:向Web服务器提交数据
3.2、HTTP GET 请求报文分析
3.3、HTTP GET 请求报文分析
4、HTTP响应报文
4.1、HTTP响应报文分析
4.2、HTTP响应报文
用于表示Web服务器响应状态的3位数字代码
200 服务器已成功处理了请求
400 错误的请求,请求地址或者参数有误
404 请求资源在服务器不存在
500 服务器内部源代码出现错误
知识点:
一个http响应报文是由响应行、响应头、空行和响应体4个部分组长城
相应行是由三部分组成:HTTP协议版本 状态码 状态描述,最常见的状态码是200
5、查看HTTP协议的通信过程
5.1、浏览器开发者工具
网页右键点击检查
6、搭建静态web服务器
静态Web服务器是为发出请求的浏览器提供静态文档的程序,搭建python自带的web服务器使用
python3 -m http.server 端口号
这个命令即可,端口号不指定默认是8000
7、静态web服务器,返回固定页面数据
import socket
if __name__ =='__main__':
# 1、编写一个TCP服务端程序
# 创建服务端套接字对象
tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
# 绑定IP地址和端口号
tcp_server_socket.bind(("",8080))
# 设置监听 128代表服务端等待排队连接最大数量
tcp_server_socket.listen(128)
while True:
# 2、获取浏览器发送的HTTP请求报文数据
client_socket,client_addr= tcp_server_socket.accept()
#接收数据
client_request_data = client_socket.recv(1024).decode()
print(client_request_data)
# 获取浏览器的请求信息
with open("./static/index.html","rb") as f:
file_data = f.read()
#应答行
response_line = "HTTP/1.1 200 ok\r\n"
response_header = "Server:pwd\r\n"
response_body = file_data
response_data = "response_line + response_header +\r\n".encode()+response_body
#发送数据
client_socket.send("收到数据".encode())
#关闭套接字
client_socket.close()