zoukankan      html  css  js  c++  java
  • 一、浏览器生成消息(2)

    2、向 DNS server查询 web server 的 IP

    qq浏览器解析网址并生成HTTP消息,然后根据域名查询 IP 地址,然后浏览器提供给 OS IP 地址并委托其发送消息。

    (1)、了解 IP 地址

    网络由很多小的子网(上学时宿舍用的交换机连接多台电脑成小子网),通过路由器(范围更大)连接起来组成一个大的网络。

    在网络中,所有设备都会被分配一个地址即IP地址,通过IP地址可判断出目标服务器的位置,从而将消息发到服务器。

    实际的 IP 地址是一串32bit(4字节)的数字,8bit(1字节)一组分为四组,分别用十进制表示再用原点隔开。

    (2)、获取IP

    浏览器调用OS中socket库中的dns解析器(一段程序),向DNS server请求查询域名对应IP,DNS server 会从域名与IP地址的对照表中查找相应的记录(这是一场接力赛,客户端先找到最近一台DNS server即客户端的TCP/IP设置中填写的DNS server 地址 --> 根DNS server --> 下级DNS server --> ... --> 目标DNS server),并返回IP地址,OS收到响应后取出IP放入响应内存中,浏览器从内存中取出IP地址。

    3、委托协议栈发送消息

    输入网址后回车,qq浏览器解析网址并生成HTTP消息,然后根据域名向 DNS server 查询 IP 地址,然后浏览器提供给 OS IP 地址并委托 OS 内部的协议栈向目标IP发送消息。

    要发送给web服务器的HTTP消息是一种数字信息,因此也可以说是委托协议栈来发送数字信息。

    (1)、数据收发操作概览

    向OS内部的协议栈发出委托时,需要按照指定顺序来调用socket库中的程序组件。

    收发数据操作如下,都是委托OS的协议栈执行:

    1. 创建套接字(创建套接字阶段)
    2. 将管道连接到服务器端的套接字上(连接阶段)
    3. 收发数据(通信阶段)
    4. 断开管道并删除套接字(断开阶段)

    这就是HTTP工作过程。

    渐变 --> 突变
  • 相关阅读:
    聊一聊所谓的B端C化
    NetCore3.1IIS其他网站出现HTTP503无法访问解决办法
    技术方案模板 fn
    技术方案模板
    composer的常用操作(composer 2.2.1)
    thinkphp6: 用validate验证参数合法性(thinkphp 6.0.9/php 8.0.14)
    thinkphp6: 从6.0.9升级(php 8.0.14)到 6.0.10lts版本(php 8.1.1)
    thinkphp6: 自定义配置文件(php 8.1.1 / thinkphp v6.0.10LTS)
    linux(ubuntu21.10):为chrome安装jsonvue(chrome 96)
    thinkphp6:mysql数据库使用事务(php 8.1.1 / thinkphp v6.0.10LTS)
  • 原文地址:https://www.cnblogs.com/lybpy/p/8146505.html
Copyright © 2011-2022 走看看