Linux基础——Web(一)http协议原理

http协议原理

用户访问网站的基本流程

  1. 用户打开浏览器,输入对应网站的域名
  2. 计算机通过DNS解析出对应网站的IP,由于是http协议,不写端口的情况下,默认访问目标80端口。如:www.baidu.com===>www.baidu.com:80
  3. 计算机发起TCP三次握手,与目标IP建立TCP数据通道。
  4. 计算机发起请求报文URL

URL===>http://www.baidu.com===>http(s)+域名就是请求也叫做URLhttphttps都是web协议,http默认是80端口,https默认是443端口https是加密的http协议。

  1. 目标web服务器接收到用户的请求后,处理请求,返回一个响应包给用户
  2. 用户计算机收到响应数据包后,浏览器解析数据包,将内容显示到浏览器上。

DNS解析流程

递归和迭代

  1. 查找浏览器缓存
  2. 查找主机hosts文件
  3. 主机向LDNS(本地DNS)服务器发起请求
  4. LDNS服务器向根服务器发起请求
  5. LDNS服务器向.com顶级域服务器发起请求
  6. LDNS服务器向baidu.com二级域服务器发起请求

LDNS服务器将结果反馈到用户并进行缓存

GAT:读请求,用户想要读取一个目标文件显示到浏览器,速度很快,却并不安全。是一个不安全的明文请求,只用于读取查询,不用于收集信息提交,例如注册账号。

POST:写请求,用于账号请求,弹出窗口让输入信息。是一个加密的请求。

HEAD:只是用来查看往返报文。报文(用户发起的GET请求,叫做请求报文,目标web服务器处理数据后,返回响应数据包,报文一般由包头+主体组成。包头记录了个人信息,如读GET请求,报文里只有包头,拥有你的计算的个人信息;响应报文的包头里记录的是Web的对应信息,主体里则是具体想看的文件内容。)

例子:http://www.baidu.com/

http://协议名字,默认端口为80

www.baiud.com:对方的域名信息,DNS之后就是对方IP

/是用户想看的具体内容的存放路径,简称URI,统一资源定位符

例子:www.baidu.com用户想看网页目录下的/index.html

这里的/以对方网页目录为根的起始位置。html为为网页目录,indexhtml目录中的一项。

 

URI:统一资源定位符

URL:请求

目标浏览器读取index.html内容,返回浏览器解析,用户就可以看到具体内容了。

[root@centos ~]# curl -v www.baidu.com

//访问百度,显示内容,-v显示过程中出现的报文信息。

请求报文的报头

用户发起请求,尝试连接www.baidu.com80端口,解析DNS;尝试三次握手,握手成功发起GET请求,目标为网页服务器的根。遵循http1.1协议,要访问的域名为www.baidu.com

 

响应报文的报头

目标浏览器处理成功,遵循http1.1协议,200返回码代表访问成功;当前数据流量为字节,目前处于连接保持状态,响应报文的主体共占用2381字节,是text格式的静态文件;数据的更新时间,唯一编码。

 

响应报文的主体

 

浏览器将主体内容解析后,就是用户最终看到的网页。

扩展:将主体中的内容复制粘贴到记事本中,然后将.txt改成.html,然后双击打开该文件就可以看到网页的架构了。

 

 

 

 

 

 

HTTP状态码

100-199

用于指定客户端响应的某些动作

200-299

表示请求成功

300-399

用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息

400-499

用于指出客户端的错误

500-599

用于指出服务器端的错误

状态码

访问成功

200~OK

服务器成功返回网页,返回标准状态码。

301

永久跳转(永久重定向),不论写什么都会返回固定页面

302

临时跳转

304

触发浏览器缓存

访问失败

401

用户验证不通过

403

禁止访问,权限拒绝,禁止用户访问

404

服务器找不到客户端请求的指定页面,可能资源丢失或不存在

500

内部服务器错误,服务器遇到了意料不到的情况,不能完成客户请求。这是一个笼统的报错,一般为服务器的设置或者内部程序问题导致。

502

坏的网关,一般是代理服务器请求后端服务时,后端服务不可用或没有完成响应网关服务器,一般为反向代理服务器下面的节点出问题导致。

503

服务器当前不可用,可能因为服务器超载或停机维护导致,或者是反向代理服务器后面没有可以提供服务的节点

504

网关超时,一般是网关代理服务器请求后端服务时,后端服务没有在特定的时间内完成处理请求,一般是服务器过载导致没有在指定时间内返回数据给前端代理服务器

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值