HTTP请求模型
两端 客户端和服务端
客户端请求服务端
服务端响应 客户端
浏览器行为与HTTP协议
处理流程:
1.输入网址并回车
2.解析域名
3.浏览器发送HTTP请求
4.服务器处理请求
5.服务器返回HTML响应
6.浏览器处理HTML页面
7.继续请求其他资源
先从局域网跳到互联网
firewall(防火墙),网关,代理服务器
找到相应的ip
背着数据到达相应的ip
根据ip找到相应的服务器
服务器处理数据返回所要的数据
背着数据返回给浏览器
浏览器处理数据
最终展现给用户
HTTP协议
协议就是规范
超文本协议 HTTP/0.9 HTTP/101 HTTP/1.1 HTTP/2.0 HTTP/3.0
一个请求 一个响应
TCP/IP协议栈
1.应用层 -----> HTTP (访问网站) SSH(远程连接) SMTP(邮件)
2.传输层 ---> tcp/udp协议
3.网络层 ----->ip层 ping命令
4.网络接口层 ----> 网卡 mac地址
ISO/OSI
1.应用层
2.表示层
3.会话层 ----> https 加密
4.传输层 ---> tcp/udp协议
5.网络层 ---> ip层 ping命令
6.数据连接层 ---> 网卡 mac地址
7.物理层 ---> 硬件 网线,无线电波...
HTTP默认端口80
HTTPS默认端口443
HTTP -----> TCP -----> IP ------> 数据链路层
1.1比1.0 多了keepalive 长链接
HTTP的工作过程
一次HTTP的操作为一个事务,分为四步:
有依赖性 后面依赖前面的是否成功
事务可以回滚 发现失败了前面的工作白做 前面如果有写操作就得改回原来的状态
1.建立连接 TCP
2.客户机发送一个请求给服务器 URL 协议版本号 头信息 请求数据
3.服务器接收请求,响应客户机 状态行 协议版本号 头信息 返回数据
4.断开连接 TCP
请求与响应
HTTP请求组成:请求行,消息报头,请求正文(post才有请求正文)
HTTP响应组成:状态行,消息报头,响应正文
请求行:方法的符号开头(GET,POST...)路径 HTTP/1.1
状态行:HTTP/1.1 200 ok
请求
1.请求方法 2.请求URL 3.HTTP协议及版本 请求行
4.报文头(key: value)格式 请求头部
(回车换行 隔开)
5.报文头 请求数据
响应
1.报文协议及版本 2.状态码及状态描述
3.响应头
4.响应体
请求方法(1.1的请求方法)
GET
POST
HEAD
PUT
DELETE
TRACE
CONNECT
OPTIONS