一个web请求的过程

一个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
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值