报文格式
请求
1 | GET / |
GET格式: 请求行
+ 请求头
POST格式: 请求行
+ 请求头
+ 空行 + 请求体
换行符: 标准规定 \r\n
,但是大部分的服务器和浏览器都支持 \n
(rfc7230#section-3.5)
请求行: 请求方式 资源路径 协议版本
请求头: key: value
请求体: JSON对象
Server response 响应
状态行 + 响应头 + 空行 + 消息体
1 | 200 OK |
请求类型 enctype
x-www-form- 默认
multipart/form-data 可传输文件
title: HTTP协议
请求方式
GET 请求大小有限制
POST 请求大小无限制
请求头含义
Host
主机名
User-Agent
浏览器版本
Accept
资源类型 如 text/*
image/*
*/*
Accept-Language
偏好的语言 如zh-CN
Accept-Encoding
可以支持的压缩类型 如 gzip
deflate
Content-Type
请求主体的数据类型
Content-Length
请求主体的大小(单位Byte)
响应
格式: 响应行
+ 响应头
+ 空行 + 响应体
响应行: 协议 状态码 描述
响应体: 空行后的 ([{id: 1, name: "哈哈"}]
、 .html)
响应状态码
1xx
响应中,临时状态码
2xx
成功
3xx
重定向,客户端行为
4xx
客户端错误
5xx
服务器错误
常见响应状态码
200
OK
处理成功
302
Found
重定向到Location响应头给定的URL304
Not Modified
未改变,使用本地缓存
400
Bad Request
客户端请求有语法错误403
Forbidden
拒绝提供服务404
Not Found
路径未找到405
Method Not Allowed
请求方式有误,(如必须GET,用了POST)428
Precondition Required
服务器要求有条件的请求,(如必须携带特定的请求头)429
Too Many Requests
定时间内请求过多,配合 Retry-After响应头 使用431
Request Header Fields Too Large
请求头太大,服务器不处理
500
Internal Server Error
服务器端发生不可预期的错误503
Service Unavailable
服务器尚未准备好处理请求
最常见: 200 404 500
响应头
Content-Type
响应内容的类型
Content-Length
响应内容的长度
Content-Encoding
该响应的压缩算法(如gzip)
Cache-Control
指示客户端应如何缓存(例如max-age=300最多缓存300秒)
Set-Cookie
当前页面所在的域设置cookie
Content-Type 响应类型
上传文件之时使用的:
1 | multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式 |
常见的媒体格式类型如下:
1 | text/html : HTML格式 |
以application开头的媒体格式类型:
1 | application/xhtml+xml :XHTML格式 |
其余的需要时查询