http
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的请求方法) CRUD(增删改查)
GET ----> 查
POST -----> 改
HEAD ---->只响应头部
PUT -----> 增
DELETE -----> 删
TRACE ----->测试或诊断 在HTTP层面上是否通
CONNECT
OPTIONS
HTTP状态码
1xx: 请求已接收
2xx:成功
3xx: 重定向
4xx: 客户端错误
5xx:服务端错误
请求json数据 RESTful 头部填写application/json
数据压不压缩在后端设置 nginx里面
Accept-Language ---->国际化设置
Referer --->上一个路径 可以防止爬虫
ETag ----->缓存
cookies与session
cookies保存在客户端的小段文本,由服务端生成 永远在客户端
session 保存在服务器上的数据,由服务端生成,当成一个数据库当中的一条记录 有时放到缓存里面 分流时用memcache 永远在服务器端
一个session对应一个客户端 根据需要产生cookies
session 有过期时间
要配合起来使用 维持浏览器的登录状态
HTTP缓存机制
浏览器缓存 (缓存经常访问的数据)
速度 cpu>内存>硬盘>端口
特点:
1.减少相应延迟
2.减少网络带宽消耗
浏览器缓存机制
1.浏览器请求
2.无缓存
3.向web服务器请求
4.请求响应,缓存协商
5.呈现
缓存策略 ----> Etag/If-None-Match策略 Last-Modified/If-modified-Since策略
强制缓存------对比缓存
强制缓存不走网络
先检查强制缓存再检查对比缓存
对比缓存优先Etag策略再Last-modified
Etag--->与内容相对应
Last-modified -->资源生成的时间戳

memory-cache disk-cache 浏览器做决定

浙公网安备 33010602011771号