?HTTP报文就是通过http协议浏览器向服务器请求和响应的数据块。分为请求报文和响应报文。
?例如:
客户端发送 | GET /index.html HTTP/1.0 Host:www.baidu.com |
---|
服务器响应 | HTTP/1.0 200 OK Content-type: text/html Content-length:1902
<html>
</html> |
一、http报文的组成成分
?请求报文和响应报文都是由三个部分组成,分别是起始行,首部,数据主体 ?每一行由一个换行符一个制表符隔开
二、报文的格式
1、请求报文格式
- 初始行: <http方法> <request-URL> <http版本>
- 首部: <首部headers>
- 数据主体: <entity-body>
?示例请求头 (部分)
起始行:GET /index.html?tn=98012088_5_dg&ch=12 HTTP/1.1
首部:
Host: www.baidu.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
数据实体:
常用的http方法:
方法名 | 说明 | 是否包含主体 |
---|
GET | 从服务器获取文档 | 否 | HEAD | 只从服务器获取文档的头部 | 否 | POST | 向服务器发送需要处理的数据 | 是 | PUT | 将请求的主体部分存储在服务器上 | 是 | TRACE | 对可能经过代理服务器传送到服务器上去的报文进行追踪 | 否 | OPTIONS | 决定可以在服务器上执行那些方法 | 否 | DELETE | 从服务器上删除一份文档 | 否 |
2、响应报文格式
- 初始行: <http版本> <状态码> <状态码的原因短语reason-phrase>
- 首部: <首部headers>
- 数据主体: <entity-body>
?示例响应头 (部分):
起始行: HTTP/1.1 200 OK
首部:
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Content-Length:1800
Date: Fri, 04 Feb 2022 08:14:00 GMT
数据实体:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
Hello World!
</body>
</html>
状态码分类:
范围 | 说明 |
---|
1xx | 信息提示 | 2xx | 成功 | 3xx | 重定向 | 4xx | 客户端错误 | 5xx | 服务器错误 |
部分首部示例说明:
首部实例 | 说明 |
---|
Date: Fri, 04 Feb 2022 08:14:00 GMT | 服务器响应的日期 | Content-Type: text/html;charset=utf-8 | 数据实体的类型 | Content-Length: 1000 | 数据实体的长度 |
|