HyperText Transfer Protocol 超文本传输协议
传输 HTTP 协议格式的数据是基于 TCP 传输协议的,发送数据之前需要先建立连接。
Uniform Resoure Locator 统一资源定位符
网络资源地址
开发者工具的标签
元素(Elements):用于查看或修改HTML标签
控制台(Console):执行js代码
源代码(Sources):查看静态资源文件,断点调试JS代码
网络(Network):查看http协议的通信过程
header选项
Response选项
请求行
请求头
空行
请求体
响应行
响应头
空行
响应体
python3 -m http.server 端口号
端口号默认8000
编写一个TCP服务端程序
获取浏览器发送的http请求报文数据
读取固定页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器
HTTP 响应报文数据发送完成后,关闭服务于客户端的套接字
示例代码
获取用户请求资源的路径
根据请求资源的路径,读取指定文件的数据
组装指定文件数据的响应报文,发送给浏览器
判断请求的文件在服务端不存在,组装404状态的响应报文,发送给浏览器
示例代码
当客户端和服务端建立连接成功,创建子线程,使用子线程专门处理客户端的请求,防止主线程阻塞
把创建的子线程设置成为守护主线程,防止主线程无法退出
示例代码
把提供服务的Web服务器抽象成一个类(HTTPWebServer)
提供Web服务器的初始化方法,在初始化方法里面创建socket对象
提供一个开启Web服务器的方法,让Web服务器处理客户端请求操作
示例代码
获取执行python程序的终端命令行参数
判断参数的类型,设置端口号必须是整型
给Web服务器类的初始化方法添加一个端口号参数,用于绑定端口号
示例代码