1. 用户访问网站流程
- 进行域名解析过程 DNS解析原理
- 完成三次握手过程 三次握手原理
- 传输HTTP请求信息 HTTP请求报文信息
- 通过防火墙到达负载均衡
- 负载均衡服务器将请求传给web服务器(后台服务器 php/java/python)
- HTTP响应报文信息
- 四次挥手,通话结束
2. HTTP协议报文结构
HTTP 请求报文【四个部分】(使用curl命令)
curl命令相当与在系统里打开了一个浏览器,只不过看不到页面 ,所有东西显示的都是字符信息
curl命令详解
curl www.baidu.com


这一部分是说明,表示访问网站进行的解析信息
* About to connect() to www.baiud.com port 80 (#0)
* Trying 103.231.13.42...
* Connected to www.baiud.com (103.231.13.42) port 80 (#0)
2.1 请求行内容
GET / HTTP/1.1
GET 请求方法 GET 代表获取信息 还有一个 POST 代表提交信息
/ 请求内容,没有指定请求内容的话,就会显示 ' / ' 默认会访问 index.html 首页文件
HTTP/1.1 代表请求的协议信息 , HTTP 早起有1.0 1.1 2.0 ,用什么协议请求,对端就会用什么协议响应
HTTP1.1 协议特性
TCP 短链接特点:
A客户端 ---> B 服务端
01 建立三次握手
数据信息 -> 接受
02 端口链接 传输数据
03 一个完整的数据 完成后立即结束会话
(再次重新建立连接)
01 建立三次握手
数据信息---> 接受
02 端口链接 传输数据
03 一个完整的数据 完成后立即结束会话
总结:在建立三次握手,传输完一个完整的数据信息之后,立刻断开会话,如果还要传输数据,需要客户端与服务端再次建立三次握手,进行数据传输
TCP 长链接特性
A客户端---> B 服务端
01 建立三次握手
数据信息 ---> 接受
02 端口链接 传输数据 (传输完成之后有一个TTL超时时间)
超时时间30s (期间如果有数据传输,继续传输)
再次倒计时30s 如果没有数据传输,链接断开
总结:相对一短链接,在一个完整的数据传输之后,会有一个TTL 超时时间,不会立刻断开连接,不需要客户端与服务端再次建立连接
2.2 请求头

> User-Agent: 客户端访问方式: 谷歌 火狐 IE 移动端: Android / ios
不同的访问方式,显示的页面不同
京东为例
移动端访问(m.jd.com)
客户端访问(jd.com)
> Host: www.baiud.com 指定显示的网站页面 baidu.com 表示的是域名
> Accept: */* 客户端接收的一些信息
2.3 空行

请求报文到了空行就已经结束因为请求的时候GET方法没有请求主体 POST方法才有
2.4 请求主体
HTTP 响应报文【四个部分】

2.1 起始行
HTTP/1.1 200 OK
HTTP/1.1 协议信息
200 OK 响应状态码信息
其他响应状态码

C( client ) S ( server )
301 永久跳转
第一次连接
C ----->www.oldboy.com S
客户端访问 www.oldboy.com
C oldboy.com->www.jd.com<----- S
服务器返回让客户端访问www.jd.com
第二次连接
C ----->www.oldboy.com S
www.jd.com
第二次访问的时候,浏览器自动会跳转到www.jd.com
302 临时跳转
C ----->www.oldboy.com S
客户端访问 www.oldboy.com
C oldboy.com->www.jd.com<----- S
服务器返回让客户端访问www.jd.com
第二次
C ----->www.oldboy.com S
客户端访问 www.oldboy.com
C oldboy.com->www.jd.com<----- S
服务器返回让客户端访问www.jd.com
总结: 301 与 302 的区别,
301 永久跳转第二次访问的时候,浏览器会自动跳转到www.jd.com
而302 临时跳转第二次连接的时候,还需要再次访问服务器,由服务器告知是否需要跳转,跳转到哪里
两种方式相比较,临时跳转使用的比较多,因为永久跳转,如果跳转的域名发生了变化,永久跳转还会自动
跳转到存储的跳转地址,这样就会报错,而302 临时跳转则不会出现这样的问题
出现500 502 503 这几种出现,都需要重点关注,以上出现,对网站影响不大,但是这几个报错,都是服务器发生了错误
2.2 响应头

Server: JDWS/2.0 什么web程序做出的响应
Date: Tue, 23 Jul 2019 06:59:57 GMT 当前的GMT时间
Content-Type: text/html 响应数据信息类型 图片/文本/音频
Content-Length: 157 响应数据大小
Connection: keep-alive 会话建立的类型 :长链接,如果没有就是短链接
Location: https://www.jd.com 指定跳转后需要访问的地址
Strict-Transport-Security: max-age=7776000 https特有的,证书有效期
2.3 空行

2.4 响应主体

HTML 代码信息,浏览器会自动解析代码信息
3. 网站HTTP协议资源信息
3.1 静态资源
将网站代码文件信息 图片 视频 音频 附件等信息直接传输给用户
用户收到信息有浏览器进行解析,显示在浏览器页面上
优势:便于被搜索引擎收录
3.2 动态资源
将网站代码文件信息 由动态程序处理完并且和数据进行交互完 再传输给用户
用户收到信息有浏览器进行解析,显示在浏览器页面上
优势:动态调整页面显示信息,减少前端开发工作量
可以有数据库配合,可以具有网站交互功能 登录 注册 评价 投票 调查
4. 网站地址的组成
tieba.baidu.com/index.html
tieba.baidu.com 域名 url
/index.html 网站资源部分 uri
5. 网站的度量方式
IP 独立IP 数量 用户访问的源IP 数量
仅供参考
PV 页面访问量
仅供参考
UV 记录用户独立访客数量
Cookie:网站分配给用户标识信息,保存在用户电脑中
session: 网站记录每个用户会话信息,保存在网站服务器中
运维关注网站访客数量,主要是为了知道架构能否承载更多得业务量
网友评论