• 【网络是怎么连接的】一、浏览器与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服务器会主动断开连接,传到客户端后客户端也会断开。连接断开,套接字被删除。

        

  • 相关阅读:
    学习数据结构的网站
    线程的自动释放、挂起、运行
    centos7 odbc mysql
    c++和c不同
    Linux挂载u盘作为本地yum源安装gcc
    构建基于JAVASCRIPT的移动WEB CMS入门——简介(转载)
    数据库SQL优化大总结之 百万级数据库优化方案
    webgl 刷底色的基本步骤
    前端下载文件流并且获取heads中的filename文件名且解决中文乱码的方法
    Python little knowledge
  • 原文地址:https://www.cnblogs.com/yesuuu/p/11198124.html
Copyright © 2020-2023  润新知