【网络是怎么连接的】一、浏览器与HTTP协议

浏览器:

1、生成HTTP消息:

  1)、网址结构: http://user:password@www.glasscom.com:80/dir/file1.htm 

  2)、HTTP服务基本思路:

    a)、请求消息:
      消息头:方法 空格 URI 空格 HTTP版本
          字段:字段值 ...
      消息体:使用POST时会发送表单数据等。
    b)、响应消息:
      消息头:HTTP版本 空格 状态码 空格 响应短语 (200 OK 表示请求完成)
          字段:字段值 ...
      消息体:服务器给发送的数据,二进制。

2、DNS服务器查找IP地址:

  1)、IP基本知识:集线器连接的是子网,子网用路由器连接起来,就是一个网络。

          xx号xx室,那么xx号是分配给整个子网的,叫做网络号,xx室是分配给子网中对应的计算机的,叫做主机号。

          IP地址 = 主体 + 子网掩码。子网掩码24 == 255.255.255.0。

          子网中全0表示子网本身,全1表示子网内广播。

  2)、使用socket库查询IP地址:

    a)、计算机要有dns客户端,这个集成在操作系统socket库中,叫做DNS解析器。Socket 库是用于调用网络功能的程序组件集合。

    b)、解析器的调用方法:<内存地址>= gethostbyname("www.lab.glasscom.com")

    c)、解析器的内部原理: 委托操作系统向DNS服务器发送UDP消息.

    d)、DNS服务器内部:

      步骤一、接收查询消息:域名、Class、记录类型

      步骤二、查询保存的记录:域名、Class、记录类型、相应数据

      步骤三、返回域名对应的数据:查询邮件服务器的时候,返回是 优先级 空格 邮件服务器域名

      其中Class现在只有IN,代表互联网

      记录类型包括A代表域名是IP地址,MX代表域名对应邮件服务器,例如163.com, 

    e)、DNS服务器互相查找是按照域分的,就是按照 . 分割来区分

3、委托协议栈发消息:

  1)、概述:

    需要多个socket库组件配合

    服务器创造套接字,等待客户端连接管道。客户端创造套接字,延伸出管道。

    应用程序委托协议栈来创造套接字等等。

  2)、创建套接字:用Socket库中的socket组件,返回一个描述符。同时随便分配一个端口号。

  3)、连接:用Socket库中的connect组件,描述符 + IP地址 + 端口号

  4)、写入:用Socket库中的write组件,描述符 + 发送数据

        read组件,指定存放消息的内存地址,

  5)、断开:web服务器会主动断开连接,传到客户端后客户端也会断开。连接断开,套接字被删除。

    

 

posted on 2019-07-16 22:57  yesuuu  阅读(852)  评论(0编辑  收藏  举报

导航