文章目录
(一)HTTP协议
HTTP:超文本传输协议,一种应用层的数据传输协议
我们今天简单了解下http协议,我们像浏览器的地址栏输入www.baidu.com会发生什么呢?下面是大致的流程
(二)HTTP请求
(1)HTTP请求的部分内容
GET http://www.baidu.com/index.html HTTP/1.0
User-Agent: Wget/1.12 (Linux-gnu)
HOST: www.baidu.com
Connection: close
- HTTP
短连接(非持久连接)
是指,客户端和服务端进行一次HTTP请求/响应之后,就close关闭连接。Connection: close
- HTTP
长连接(持久连接)
是指,客户端和服务端建立一次连接之后,可以在这条连接上进行多次请求/响应操作。持久连接可以设置过期时间,也可以不设置。Connect: keep-alive
(2)请求方法
请求方法 | 含义 |
---|---|
GET | 申请获取资源(读) |
HEAD | 仅申请服务器的头部信息(读) |
POST | 向服务器提交数据(写) |
PUT | 上传资源(写) |
DELETE | 删除资源(写) |
TRACE | 请求原始HTTP请求的内容(查看代理服务器对HTTP请求的影响)(读) |
OPTIONS | 查看某个URL支持的请求方法,URL可设置成*,获取所有支持的请求方法(读) |
CONNECT | 某些代理服务器,能将请求连接转成一个安全隧道 (写) |
PATCH | 对某个资源做部分修改(写) |
注意:
- 安全的请求方法:GET、HEAD、OPTIONS、TRACE,不会影响服务器上的资源
- 等幂的请求方法:GET、HEAD、OPTIONS、TRACE、PUT、DELETE,多次连续的、重复的请求、只发一次请求;而POST不同,连续多次发送同一个请求可能会影响服务器上的资源
- Linux上提供了HEAD GET POST命令,其含义与HTTP协议的请求方法含义相同
(三)HTTP应答
(1) HTTP应答的部分内容
注意:每行都以\r\n结尾
(2)应答状态码
状态类型 | 具体状态码 | 含义 |
---|---|---|
1xx 信息 | 100 continue | 服务器收到了客户端的请求行和头部信息,服务器告诉客户端继续发送数据部分。客户端先发送Expect: 100-continue头部字段告诉服务器还有数据要发送 |
2xx 成功 | 200 OK | 请求成功 |
3xxx 重定向 | 301 Moved Permanently | 资源被永久地转移了,请求将被重定向 |
302 Found | 通知客户端能在其他地方找到,但需要使用GET方法获取它 |