[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页面
1 2 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
1 2 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请求方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 是对所请求对象所进行的操作,也就是一些命令
GET POST DELETE PUT
了解即可 HEAD TRACE OPTION CONNECT
|
HTTP响应方法(状态码)
响应报文中的状态码
- 状态码(status-code)是响应报文状态行中的一个3位数字,指明请求是否被满足,如果没有满足,原因是什么。
状态码分为以下五类:
1 2 3 4 5
| 1XX(通知信息) 2XX(成功) 3XX(重定向) 4XX(客户错误) 5XX(服务器错误)
|
各状态码的含义
1 2 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
1 2 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 从哪里跳转的网站
|
1 2 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
|
1 2 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