报文格式
请求
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格式 |
其余的需要时查询