-
-
作用
- 规定了浏览器与服务器之间数据传输的规则
-
要求
- 浏览器在向服务器发送请求数据时,或是服务器在向浏览器发送响应数据时,都必须按照固定的格式进行数据传输
-
特点
- 基于TCP协议
- “三次握手”
- 基于请求-响应模型
- 一次请求对应一次响应(先请求后响应)
- HTTP协议是无状态协议
无状态协议:无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。
缺点: 多次请求间不能共享数据
优点: 速度快- 对于数据没有记忆能力。每次请求-响应都是独立的
- 基于TCP协议
-
分类
- 请求协议
- 请求行、请求头、请求体
- 响应协议
- 响应行、响应头、响应体
- 请求协议
-
请求协议
- get(常用)
- 请求行
- 获取资源。| 向特定的资源发出请求
- 请求行
- post(常用)
- 请求行
- 传输实体主体。 向指定资源提交数据进行处理请求(例:上传文件),数据被包含在请求体中
- 请求行
- 请求头(通用)
- 格式为key: value形式
- 常见请求头
- Host: 表示请求的主机名
- User-Agent: 浏览器版本
- Accept:表示浏览器能接收的资源类型
- Accept-Language表示浏览器偏好的语言,服务器可以据此返回不同语言的网页
- Accept-Encoding:表示浏览器可以支持的压缩类型
- Content-Type:请求主体的数据类型
- Content-Type:请求主体的数据类型
- 组成(通用)
- 请求方式
- 资源路径
- 请求路径
- 请求参数(get特有)
- 请求参数是以key=value形式出现,多个请求参数之间使用&连接
- 请求路径和请求参数之间使用?连接
- 协议/版本
- 请求体(post特有)
- 存储请求参数
- 请求体和请求头之间是有一个空行隔开(作用:用于标记请求头结束
- 区别
- 请求参数
- get在请求行中
- post在请求体中
- 请求参数长度
- get请求参数长度有限
- post请求参数长度没有限制
- 安全性
- get安全性低。原因:请求参数暴露在浏览器地址栏中
- post安全性相对高
- 请求参数
- get(常用)
-
响应协议
- 响应行
- 协议及版本
- 响应状态码
- 1xx
- 响应中 --- 临时状态码。表示请求已经接受,告诉客户端应该继续请求或者如果已经完成则忽略
- 2xx
- 成功---表示请求已经被成功接收,处理已完成
- 3xx
- 重定向---重定向到其它地方,让客户端再发起一个请求以完成整个处理
- 4xx
- 客户端错误--- 处理发生错误,责任在客户端,如:客户端的请求一个不存在的资源,客户端未被授权,禁止访问等
- 5xx
- 服务器端错误 --- 处理发生错误,责任在服务端,如:服务端抛出异常,路由出错,HTTP版本不支持等
- 1xx
- 状态码描述
- 响应头
- 格式为key:value形式
- 常见的响应头
- Content-Type:表示该响应内容的类型,例如text/html,image/jpeg ;
- Content-Length:表示该响应内容的长度(字节数
- Content-Encoding:表示该响应压缩算法,例如gzip
- Cache-Control:指示客户端应如何缓存,例如max-age=300表示可以最多缓存300秒
- Set-Cookie: 告诉浏览器为当前页面所在的域设置cookie
- 响应体
- 存储响应的数据
- 响应体和响应头之间有一个空行隔开(作用:用于标记响应头结束)
- 响应行
-
HTTP协议
最新推荐文章于 2023-09-17 17:13:26 发布