1.输入网址后发生了什么
2.http协议详解
3.https协议分析
4.http2协议分析
5.了解http3
6.后台服务于HTTP
7.反向代理于web服务
HTTP请求模型:
请求: 客户端发起请求,服务器接收请求.
相应: 服务器响应,客户端接收响应
传统服务器从来不主动发数据 (webSocket和http2协议除外)
浏览器访问www.baidu.com处理流程
用户向浏览器发命令访问网站-->检查互联网连通性-->跨越防火墙/网关/路由器-->访问DNS服务器去解析网址-->把请求发送到相应的IP地址-->请求经过服务器网关-->服务器接收到请求包-->检查和解析请求信息-->服务器做出响应--> 响应信息返回到用户浏览器(可以不同路)-->浏览器解析响应信息-->浏览器渲染展示页面
1).浏览器中输入网址并回车
2).解析域名
3).发起http请求
4).服务器处理请求
5).服务器返回HTML响应
6).浏览器处理HTML页面
7).继续请求其他资源
HTTP协议,超文本传输协议
HTTP协议是一种标准,一种规范
1991-----------1996----------1999---------2015--------2018
http0.9-----> http1.0----->http1.1----->http2----->http3
TCP/IP协议栈
1.应用层 (HTTP)
2.传输层 (TCP/UDP)
3.网络层 (IP)
4.网络接口层 (数据链路层+物理硬件层)
ISO协议
1.应用层
2.表示层
3.会话层 (加密)
4.传输层
5.网络层
6.数据链路层
7.物理层
目前普遍应用版本HTTP1.1 >>>>正逐渐向HTTP2迁移
http:默认端口号80
https默认端口号443
HTTP操作基于事务,有一个请求就有一个响应.全部成功就成功,有一个失败就失败
HTTP步骤:
1.客户机与服务器建立连接,HTTP工作开始.
2.建立连接后,客户机发送一个请求给服务器,格式为:统一资源标识符(URL),协议版本号,MIME信息,包括(请求 修饰符,客户机信息和可能的内容)
3.服务器接到请求后,给与响应的信息,其格式为:一个状态行包括协议版本号.成功或错误代码,后面是MIME信息,包括服务器信息,实体信息和可能的内容.
4.客户端接收服务器返回的信息通过浏览器显示在用户的显示器上,然后断开连接.(断开TCP);
请求与响应
请求: 请求头,消息报头,请求正文
响应: 状态行,消息报头,响应正文
请求行组成:方法符号,请求URL,协议版本号;
状态行组成:服务器HTTP协议版本,状态码
下图分别是请求头和响应头 view parsed / view source
请求头:
Accept Encoding:是否接收压缩数据
Accept-Language: 语言
Cache-Cortrol:缓存相关
Connetction: 是否支持长连接(HTTP1.0以后)
DNT:本地浏览器环境相关
Pragma: no-cache 缓存相关
Upgrade-Insecure-Requests:安全性相关
User-Agent: 用户客户机相关信息: 浏览器,操作系统,
响应头
Content-Type:text/html;charset=utf-8 页面内容描述信息
Data:服务器响应时间(格林尼治时间)
Expires:缓存有效时间
Server:web服务器类型
cookie: path/邮箱路径, domain:域名
referer:请求来源路径
User-Agent: 用户客户机相关信息: 浏览器,操作系统,
http2请求头:
:auchorty:
:method:GET
:path:
:scheme:
请求方法:
1.GET
2.POST (用在修改)
3.HEAD (只请求响应头)
4.PUT (类似post,用在添加)
5.DELETE
6.TRACE (请求服务器回送收到的请求信息,类似ping 主要用于测试或诊断)
7.CONNECT (HTTP/1.1协议中预留,能将连接改为管道方式的代理服务器)
8.OPTIONS (请求查询服务器的性能,或者查询与资源相关的选项和需求)
HTTP状态码
1xx:指示信息--表示请求已经接收,继续或等待处理(少见,用在异步处理)
2xx:成功 200
3xx:重定向 304
4xx:客户端错误 400(权限相关),403,404
5xx:服务器端错误 500(内部异常/接口错误),502(经过了反向代理,代理错误),507
session/cookie
缓存
缓存的优点:
1.减少延迟
2.减少网络带宽消耗
浏览器缓存机制 / 强制缓存/对比缓存
Etag/If-Node-Match策略
Last-Modified/If-Modified-Since策略
HTTP2协议分析
1.使用二进制格式传输,更高效.更紧凑 8位=1字节
2.对报头压缩,降低开销
3.多路复用,一个网络连接实现并行请求
4.服务器主动推送,减少请求延迟
5.默认使用加密(可以不加密)
HTTP2的伪头字段
:auchorty:目标RUL认证部分
:method:GET 目标URL模式部分
:path: 目标URL的路径和查询部分
:scheme:
HTTP3 (基于UDP速度快,但稳定)
HTTP-over-QUIC更名HTTP3
QUIC协议基于UDP(Quick UDP Internet Connection)
HTTP3和HTTP1/HTTP2没有什么关系
HTTP3将会是一个全新的web协议,处于测试阶段
HTTP与反向代理
反向代理用途
1.加密和SSL加速
2.负载均衡
3.缓存静态内容
4.压缩
5.减速上传(百度云限速)
6.安全
7.外网发布
让nginx跑起来
https://www.jianshu.com/p/19e49eafb093
具体内容详见下一页