http原理
想要了解http中的原理,我们可以参考Introduction to HTTP
这里我总结一下蓝桥云课堂中Python实现简单Web服务器的实验原理运用到的一些知识:
一般我们的 web 程序都运行在 TCP/IP 协议上,程序之间使用 socket(套接字) 进行通信,它能够让计算机之间的通信就像写文件和读文件一样简单。 一个 tcp socket 由一个 IP 地址和端口号组成。
- IP 地址是一个 32 位的二进制数,通常被分割为 4 个“8 位二进制数”,写成 10 进制的形式就是我们常见的 174.136.14.108。我们通过 IP 地址来标识所连接的主机。
- 端口号是一个范围在 0-65535 之间的数字,一台主机上可能同时有多个 sockets,因此需要端口号进行标识。端口号 0-1023 是保留给操作系统使用的,我们可以使用剩下的端口号。
超文本传输协议(HTTP)交换数据的方法:
传输过程图:
HTTP 请求就是一段文本,任何程序都能生成一个 http 请求,就像生成文本一样简单。这段文本需要包含以下这些部分:
- HTTP method:HTTP请求方法。最常用的就是GET(抓取数据)与POST(更新数据或者上传文件)
- URL:通常是客户端请求的文件的路径,比如/research/experiments.html, 但是是否响应文件都是由服务器决定的。
- HTTP version:HTTP 版本。通常是 HTTP/1.0 或 HTTP/1.1
- header field:HTTP 头的键值对,做一些基本设置
- body: 一些与请求有关的负载数据。比如在一个网站登陆的时候提交登陆表单,那负载数据就是你的账号与密码信息。
HTTP响应结构:
- status code:状态码。请求成功响应 200,请求的文件找不到则响应 404。
- status phrase:对状态码的描述。