week13-网站HTTP协议相关概念

1. 用户访问网站流程

  • 进行域名解析过程 DNS解析原理
  • 完成三次握手过程 三次握手原理
  • 传输HTTP请求信息 HTTP请求报文信息
  • 通过防火墙到达负载均衡
  • 负载均衡服务器将请求传给web服务器(后台服务器 php/java/python)
  • HTTP响应报文信息
  • 四次挥手,通话结束

2. HTTP协议报文结构

HTTP 请求报文【四个部分】(使用curl命令)

curl命令相当与在系统里打开了一个浏览器,只不过看不到页面 ,所有东西显示的都是字符信息
curl命令详解
curl www.baidu.com 
curl请求全部信息.png
请求报文部分
这一部分是说明,表示访问网站进行的解析信息
* 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 响应报文【四个部分】

HTTP响应报文

2.1 起始行

HTTP/1.1 200 OK

HTTP/1.1 协议信息
200 OK 响应状态码信息

其他响应状态码


常见响应状态码.png
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: 网站记录每个用户会话信息,保存在网站服务器中

运维关注网站访客数量,主要是为了知道架构能否承载更多得业务量

你可能感兴趣的:(week13-网站HTTP协议相关概念)