1.基本规则
基于请求响应模型
一次请求对应一次响应
请求只能由客户端发出 服务器被动等待请求作出响应
2.请求
一个请求行
描述了请求最基本的信息
GET/indext.html
请求方式:
http协议共定义了8中请求方式
通常只使用GET和POST这两种请求方式
GET和POST的主要区别在于请求方式传递方式不同
GET请求方式下 请求参数直接拼接在地址后面进行传输,其中地址和参数之间用?连接多个参数用&连接
GET方式传递请求参数 简单易用
传输的数据量有限 一般不能超过4KB(和浏览器有关)
POST请求方式下 请求参数不会拼接在地址之后 而是作为实体内容在底层流中进行传输
用起来比较麻烦
传输的数据量没有限制
数据在底层流中传输,任意格式的数据都能传输
安全性相对较高
只有一种情况是POST提交 使用表单发送数据且表单的method被设置为POST
其他情况基本都是GET提交
请求的资源路径
HTTP/1.0
HTTP/1.1增加了保持底层TCP连接的功能 可以让浏览器在请求响应结束后继续持有
HTTP/2.*
若干请求头
Accept:text/html,image/*
描述当前浏览器可以接收的数据格式
Accept-Charset
描述当前浏览器可以接收端数据编码
Accept-Encoding:gzip,compress
描述当前浏览器可以接收的压缩格式
Accept-Langage:en-us,zh-cn
描述当前浏览器采用的语言环境
Host:www.baidu.cn:80
访问的主机名称
User-Agent:Mozilla/4.0
浏览的基本信息
Referer:
和防盗链相关的头
Connection:
是否要继续保持连接
空行
实体内容
GET请求方式实体内容为空
POST请求方式,请求参数在实体内容中传输
3. 响应
一个状态行
HTTP/1.1 200 ok
遵循的协议
状态码
100~199表示接收端请求正在处理
200~299表示成功接收请求并已完成整个处理过程 常用200
300~399需要进行附加操作以完成请求
400~499客户端的请求有错误 常用404
500~599服务器端出现错误
200 成功
302 重定向
304 307 缓存相当的头
401权限不足
403 拒绝访问
404 找不到资源
状态信息
一段简短文字描述响应的结果
若干响应头
Location 配合302使用实现请求重定向
Server 服务器的基本信息
Content -Encoding服务器发送端数据使用的压缩格式
Content-language 服务器发送蛋糕诗句使用的语言环境
Content-Type 服务器发送的数据是什么格式 如果是字符格式的数据 还可以通知服务器发送的数据是什么编码
Referesh 定时刷新相关的头 通知浏览器 过几秒后自动刷新访问哪个地址
Expires 通知浏览器是否缓存
Date 响应时的时间
实体内容
服务器发送给浏览器的真实数据内容