[toc]
HTTP协议介绍
HTTP
- 什么是HTTP
- HTTP 全称:Hyper Text Transfer Protocol 中文名:超文本传输协议
 
- 什么是超文本传输协议
- 是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。
 
- 什么是超文本
- 包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。
- 这些超文本文件彼此链接,形成网状(Web),因此又被称为网页(Web Page),这些链接使用URL表示。
- 最常见的超文本格式是超文本标记语言HTML。
- html文件->包含各种各样的元素(URL链接)->形成WebPage简称web页面
 
URL
- 什么是URL
- URL即统一资源定位符(Uniform Resource Locator),用来唯一地标识万维网中的某一个文档。
 
- URL结构
- URL由:协议、主机和端口(默认80) 文件名,三部分构成:
 

HTTP工作原理

在浏览器中输入一个网址的时候https://www.chenlin.cloud/
- 浏览器分析URL
- 浏览器向DNS请求解析URL(本地解析优先级最高)
- DNS从URL解析出IP并返回给浏览器
- DNS服务器,会将解析出来的IP地址110.111.112.113并返回给浏览器。
 
- 浏览器与IP建立TCP(80端口)连接
- 浏览器接收到DNS返回的IP地址,立即与该IP所在的服务器建立TCP连接(80端口)。
 
- 浏览器发出HTTP请求报文
- 浏览器请求文档,也就是咱们常说的html页面,GET /index.html,并发出HTTP请求报文。
 
- 服务器响应HTTP请求报文
- 服务器给出响应,将请求的index.html文档返回给浏览器,也就是响应HTTP请求的报文。
 
- 响应完成,释放TCP连接
- 浏览器展示web页面
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 
 | 
 
 客户端向服务端发起查询--递归查询
 服务端向客户端发起查询--迭代查询
 .com根域发起查询
 .com根域--> driverzeng.com
 .driverzeng.com --> blog class test download---> blog.... A记录 39.104.203.184
 blog.driverzeng.com
 
 
 
 
 
 - 建立连接 三次握手
 syn(建立连接型号)
 客户端----服务端
 syn+ack(我收到了建立连接的请求了)
 服务端---客户端
 ack(告诉服务端,我知道你收到建立连接请求了)
 客户端---服务端
 
 
 -请求的头部信息
 -请求的方法 GET
 -请求的主机 blog.driver....com
 -请求的资源 /index.html
 -请求的端口是什么 默认http80 https443
 -请求的参数是什么 属性(请求类型,压缩,认证,浏览器等)
 -请求的空行
 
 
 
 
 -静态请求 web服务器将静态请求下发给共享存储服务器上,找到对应的静态资源返回给用户
 -动态请求
 
 
 
 
 
 -从数据库中取出数据,先放入缓存一份,再返回给用户
 
 
 
 - 四次挥手
 
 
 
 | 
访问网站分析
浏览器分析超链接中的URL
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | 
 https://www.baidu.com/s
 ?ie=utf-8
 &f=8
 &rsv_bp=1
 &rsv_idx=1
 &tn=baidu
 &wd=%E6%9B%BE%E8%80%81%E6%B9%BF
 &rsv_pq=c177c4df0026ba3e
 &rsv_t=e001VxO8FQ8I6s1o1i0km8IYEX2%2F7PwwkwTB6FC%2FXU9Mmwz24Z4i%2BnYoP0I&rqlang=cn&rsv_enter=1
 &rsv_dl=tb
 &rsv_sug2=0
 &inputT=1729
 &rsv_sug4=1728
 
 | 
请求DNS
| 1
 | PC向DNS服务器110.111.112.113发出DNS QUERY请求,请www.chenlin.cloud的A记录。
 | 

DNS回复
| 1
 | DNS服务器,回复 DNS response,解析出www.chenlin.cloud域名对应的 A 记录
 | 


HTTP请求方法
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | 是对所请求对象所进行的操作,也就是一些命令
 
 
 GET
 POST
 DELETE
 PUT
 
 了解即可
 HEAD
 TRACE
 OPTION
 CONNECT
 
 | 
HTTP响应方法(状态码)
- 响应报文中的状态码 - 
- 状态码(status-code)是响应报文状态行中的一个3位数字,指明请求是否被满足,如果没有满足,原因是什么。
 
- 状态码分为以下五类: | 12
 3
 4
 5
 
 | 1XX(通知信息)		2XX(成功)
 3XX(重定向)
 4XX(客户错误)
 5XX(服务器错误)
 
 |  
 
- 各状态码的含义 | 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 | 200
 
 
 301
 302
 304
 307
 
 
 400
 401
 403
 404
 
 
 500
 502
 503
 504
 
 |  
 
头部信息

PV UV IP
Chrome浏览器开发者工具
General
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | 
 
 
 Request URL: https://blog.driverzeng.com/driverzeng/2053.html
 
 Request Method: GET
 
 Status Code: 200 3xx 4xx 5xx
 
 Remote Address: 122.228.74.136:443
 
 Referrer Policy: strict-origin-when-cross-origin
 referrer 从哪里跳转的网站
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 | 
 
 ali-swift-global-savetime: 1670486003
 content-encoding: gzip
 content-type: text/html; charset=UTF-8
 date: Thu, 08 Dec 2022 07:53:23 GMT
 eagleid: 7ae45f9916704860023241086e
 link: <https://blog.driverzeng.com/?p=2053>; rel=shortlink
 server: Tengine
 timing-allow-origin: *
 vary: Accept-Encoding
 via: cache59.l2cn3037[843,843,200-0,M], cache33.l2cn3037[845,0],
 kunlun7.cn250[917,917,200-0,M], kunlun3.cn250[920,0]
 x-cache: MISS TCP_MISS dirn:-2:-2
 x-frame-options: SAMEORIGIN
 x-pingback: https://blog.driverzeng.com/xmlrpc.php
 x-powered-by: PHP/7.1.21
 x-swift-cachetime: 0
 x-swift-savetime: Thu, 08 Dec 2022 07:53:23 GMT
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 | 
 
 :authority: blog.driverzeng.com
 :method: GET
 :path: /driverzeng/2053.html
 :scheme: https
 accept:
 text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng
 ,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
 accept-encoding: gzip, deflate, br
 accept-language: zh-CN,zh;q=0.9
 cache-control: max-age=0
 cookie: dark=0; bgImgSetting=white-bg
 referer: https://blog.driverzeng.com/linux/linux%e6%9e%b6%e6%9e%84%e7%af%87/
 sec-ch-ua: "Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"
 sec-ch-ua-mobile: ?0
 sec-ch-ua-platform: "Windows"
 sec-fetch-dest: document
 sec-fetch-mode: navigate
 sec-fetch-site: same-origin
 sec-fetch-user: ?1
 upgrade-insecure-requests: 1
 user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like
 Gecko) Chrome/108.0.0.0 Safari/537.3
 
 | 
松耦合架构SOA