8.HTTP工作原理

Linux9期架构-day08 课前回顾

URL:协议 + 主机 + 端口 + 文件路径

# 什么是URL 统一资源定位符(唯一标识) # URL的组成 URL由协议、主机和端口(默认为80)以及文件名三部分构成 例::90/epel/1.txt # -------> 协议 # :90 -------> 主机ip:端口 # 文件名和路径 -------> 服务器站点目录下的目录和文件

HTTP:超文本传输协议

# 包含有超链接(link)和各种多媒体元素(Markup)的文本,这些超文本彼此连接,形成网状(webPage)。这些链接使用URL表示。最常见的超文本格式是超文本标记语言HTML。 也可以这么理解:通过一个超链接,打开一个文本 当我们打开浏览器访问百度:https://www.baidu.com 浏览器在帮你,去百度的服务器上下载一个文本(index.html) HTTP的工作原理(粗略概括) 访问 URL: https://blog.driverzeng.com/zenglaoshi/2039.html # 1.浏览器接收到url,对url进行解析,取出域名 # 2.将域名交给DNS服务器,询问DNS服务器该域名对应的IP是啥 - 检查localDNS - 检查13个根域 - 递归查询 - 迭代查询 # 3.DNS将IP返回给浏览器 # 4.浏览器与DNS返回的IP的80端口建立TCP连接 # 5.请把你站点目录下/zenglaoshi目录下的2039.html发给我 # 6.服务器,响应返回一个状态码,浏览器就断开TCP连接 # 7.如果状态码是2xx或者3xx,就可以加载页面 访问网站分析 1.访问 URL: https://blog.driverzeng.com/zenglaoshi/2039.html,浏览器接收到url,对url进行解析,取出域名。https://blog.driverzeng.com/下面都是目录或者参数 2.浏览器请求DNS服务器解析域名, 3.DNS服务器回复

工作流程:用输入域名 - > 浏览器跳转 - > 浏览器缓存 - > Hosts文件 - > DNS解析(递归查询|迭代查询) ,找到对应IP之后回复

4.建立tcp连接

流程:浏览器向blog.driverzeng.com服务器地址发起tcp三次握手

发起http请求报文

PC向blog.driverzeng.com服务器发出GET请求,请求主页面,请求头部,请求空行

5.服务器回应

响应头部,响应空行,发送主体

image-20200513162546741

页面分析 # 基本信息 请求网址:https://www.driverzeng.com/ 请求方法:GET 远程地址:39.104.203.184:443 状态码: 200 版本:HTTP/1.1 Request URL: Request Method: GET Status Code: 200 OK Remote Address: 10.0.0.7:80 Referrer Policy: no-referrer-when-downgrade # 请求头部 ##请求的域名 :authority: blog.driverzeng.com ## 请求的方式 :method:GET ##请求的路径 :path:/ ##请求的协议 :scheme:https ## 请求的资源类型 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/\*=0.8,application/signed-exchange;v=b3 ## 资源类型压缩 Accept-Encoding: gzip, deflate ## 资源类型的语言 Accept-Language: zh-CN,zh;q=0.9 ## 缓存控制:服务端没有开启缓存 Cache-Control: no-cache ## 长连接 Connection: keep-alive ## 访问的主机: Host: ## 项目缓存:没有开启 Pragma: no-cache ## 客户端优先加密 Upgrade-Insecure-Requests: 1 ## 用户访问网站的客户端工具 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36 # 响应头部 Connection: keep-alive # 建立长连接 Content-Type: text/html;charset=utf-8 # 解析方式和字符集 Date: Wed, 13 May 2020 02:29:35 GMT # 日期 server:Nginx/1.14.1 #该网站服务器,使用的软件和版本号 status: 200 #状态码 # 响应空行 # 主体 页面 ... <html> <head> <title>..................</title> <meta http-equiv="Content-Type" content="text/html"; charset="utf-8"> <style type="text/css"> .bt{ font-size: 30px; color: red; text-align: center; ......... 6.完成响应

最后完成了数据的交互过程,TCP建立的连接经过三次握手之后,还要经过四次挥手,断开连接

HTTP请求方法 方法(Method) 含义
GET   请求读取一个Web页面(下载一个页面)  
POST   附加一个命名资(如Web页面)(上传)  
DELETE   删除Web页面  
CONNECT   用于代理服务器  
HEAD   请求读取一个Web页面的头部  
PUT   请求存储一个Web页面  
TRACE   用于测试,要求服务器送回收到的请求  
OPTION   查询特定选项  
HTTP响应方法

2xx和3xx都是网页可以正常访问

4xx:Nginx的报错(出错,出在nginx上)去检查nginx服务,或者服务器权限等...

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzswyg.html