zoukankan      html  css  js  c++  java
  • 游览器访问一个网址的全过程

    在介绍游览器访问一个网址的全过程之前,先来介绍一下网络连接的一些常识,方便大家阅读.

    • MAC地址:在设备与设备之间数据通信时用来标记收发双方(网卡的序列号)
    • IP地址:在逻辑上标记一台电脑,用来指引数据包的收发方向(相当于电脑的序列号)
    • 网络掩码:用来区分ip地址的网络号和主机号
    • 默认网关:当需要发送的数据包的目的ip不在本网段内时,就会发送给默认的一台电脑,成为网关
    • 集线器:已过时,用来连接多态电脑,缺点:每次收发数据都进行广播,网络会变的拥堵
    • 交换机:集线器的升级版,有学习功能知道需要发送给哪台设备,根据需要进行单播、广播
    • 路由器:连接多个不同的网段,让他们之间可以进行收发数据,每次收到数据后,ip不变,但是MAC地址会变化
    • DNS:用来解析出IP(类似电话簿)
    • http服务器:提供浏览器能够访问到的数据

    下面以浏览器访问www.Baidu.com为例进行说明.

    1. 先要通过dns服务器解析出www.Baidu.com对应的ip地址    
    1) 使用arp获取默认网关的mac地址  
    2) 组织数据发送给默认网关
    3) 默认网关把数据转发给在同一网段的路由器
    4) 路由器根据自己的路由协议,选择一个合适的较快的路径转发数据给目的网关
    5) 目的网关(dns服务器所在的网关)把数据转发给dns服务器
    6) dns服务器根据游览器的请求解析出www.Baidu.com对应的ip,并将ip原路返回给客户端
    2. 游览器和得到的ip地址所在的服务器进行tcp的三次握手
    3. 3次握手成功后,使用http协议发送请求数据给web服务器(即百度所对应的服务器)
    4. web服务器收到请求之后,通过查询自己的服务器得到相应的数据,然后原路返回给游览器
    5. 游览器接收到数据之后,通过游览器自己的渲染功能来显示这个网页

    6. 游览器关闭tcp连接,即4次挥手

    关于tcp三次握手和四次挥手有兴趣的朋友可以去看看

  • 相关阅读:
    MySQL 中随机抽样:order by rand limit 的替代方案
    mysql下distinct和group by区别对比
    MVC中实现多按钮提交(转)
    js的逻辑 OR 运算符- ||
    js 实现键盘记录 兼容FireFox和IE
    jquery扩展
    sp_executesql的用法
    MVC中,视图的Layout使用
    MVC4的过滤器
    MVC中的Repository模式
  • 原文地址:https://www.cnblogs.com/fanlei5458/p/9235484.html
Copyright © 2011-2022 走看看