一个web请求的过程

本文详细介绍了从用户在浏览器中输入网址开始,到浏览器接收到服务器响应的整个过程。包括域名解析、TCP连接建立、HTTP请求与响应等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个web请求的过程    
1.在电脑上面打开一个网页的时候,我们一般输入的是一个域名 比如 www.baidu.com
但是域名是不能直接访问的,我们需要把域名解析成一个IP地址,
    首先主机会生成一个DNS请求,将请求传递给传输层,通过UDP产生一个UDP报文,再传递给网络层产生一个IP报文,目的地址是DNS服务器的IP地址,然后在数据链路层通过ARP协议得到DNS服务器的MAC地址,这以后把数据帧通过以太网传输给DNS应用程序,如果要解析的域名在当前DNS服务器中有相应的表项(如果不在当前DNS服务器,那么本地DNS服务器还会向上级的DNS服务器发出DNS查询请求,如此递归直到查到要解析的域名IP地址)。DNS把通过DNS应答得到的IP地址返回给主机
2. 浏览器得到请求网站的IP地址,(在没有填写端口的情况下默认是80端口)
    首先要和对方服务器建立一个TCP(传输控制协议,TCP和UDP同属传输层,但是TCP协议是个可靠地面向连接的协议,要比UDP复杂的多。TCP更适合要求可靠传输的应用)连接,建立连接通过三次握手的方法,这里和以下发送的TCP报文同样要传给下一层:网络层,同样的IP层给TCP报文加上IP包头,发送给路由器,路由器根据报文中的目的地址决定下一跳的IP地址和端口,这个决定需要查询它自身的路由表,IP报文可能通过多个路由器的转发,终于到达了对方的服务器,再剥掉IP报头递交给上层,建立好了TCP连接,以后发送的数据都可以这条可靠的连接传输了,和WEB服务器之间的TCP连接建立成功,就可以发送请求了.
3. WEB服务器收到请求,就可以将响应信息通过刚才建立好的TCP连接送回给请求方.我们假设服务端使用的是nginx,如果是不带路径的请求,会返回默认目录下面的index.html(在没有做设置的情况下面,网址可以重定向的)默认目录在nginx配置文件nginx.conf ( root  /data/htdocs/www)这个选项  直接返回/data/htdocs/www/这个目录下面的index.html给用户


    简单版本的web请求
    当我们输入一个网址, 会先通过DNS服务器解析返回一个IP地址,通过这个IP地址在局域网内泛洪 在内部网络,然后经过路由器封装源IP和目标IP  当经过一台路由器的时候  
            
    发送端
    1.本机发起一个80端口的请求
    2.数据经过封装传输层增加一层为传输层
    3.在网络层封装源IP和目标IP
    4.在数据链路层封装源MAC和目标MAC
    5在物理层转换成比特流发送出去

    中间链路
    1.如果先经过交换机 会把源MAC替换成经过的交换机的端口MAC   根据目标MAC进行转发
    2.如果经过路由器,首先会进行NAT转换   把源地址转换成公网地址  然后再根据目标IP进行转发
    3.到达目标后,如果接受请求就进行下一步

    接收端
    1.收到一个80端口的请求,经过防火墙过滤,然后查看请求合不合法,经过检测可以回复
    2.根据目标IP回复一个请求
    3.把需要的数据发给目标IP
    
    发送端
    发送端get下来一个网页 index.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值