zoukankan      html  css  js  c++  java
  • 《网络是怎样连接的》第一章

    1.1 生成HTTP请求

    URL的各种格式

    1.1.2浏览器先要解析URL

          

    1.1.3 省略文件名的情况

    http://www.lab.glasscom.com         (当没有路径名时,就代表访问根目录下事先设置的默认文件)

    1.1.4 HTTP的基本思路

    HTTP的主要方法

    1.1.5生成HTTP请求消息

    1.1.6发送请求后会收到响应

     HTTP状态码概要

    1.2向DNS服务器查询web服务器的IP地址

    生成HTTP消息之后,接下来我们需要委托操作系统将消息发送给Web服务器

    简单了解一下消息传送的具体过程,发送者发出的消息首先经过子网中的集线器,转发到发送者最近的路由器上。接下来,路由器会根据消息的目的地判断下一个路由器的位置,然后将消息发送到下一个路由器,即消息再次经过子网内的集线器被转发到下一个路由器。前面的过程不断重复,最终消息就被传送到了目的地。

    IP地址 32比特 按照8比特(一字节)为一组分成4组

    在IP地址的规则中,网络号和主机号连起来总共是32比特,但这两部分的具体结构是不固定的。在组建网络时,用户可以自行决定它们之间的分配关系,因此我们还需要附加消息(子网掩码)来表示IP地址的内部结构。

    IP地址的表示方法

    顺带一提,主机号部分全部为0或者全部为1时代表两种特殊的含义

    全0:表示整个子网

    全1:表示向子网上所有设备发送包,即“广播”

    1.2.3 Socket 库提供查询IP地址的功能

    查询IP地址的方法非常简单,只要询问最近的DNS服务器“www.lab.glasscom.com”的IP地址是什么  DNS服务器就会回到该服务器的IP地址为xxx.xxxx.xxx.xxx

    对于DNS服务器,我们的计算机上有相应的DNS客户端(DNS解析器,或简称解析器,解析器实际上是一段程序,它包含在操作系统的Socket库中)、

    Socket库是用于调用网络功能的程序组件集合

    1.2.4通过解析器向DNS服务器发出查询

    调用解析器后,解析器会向DNS服务器发送查询消息,然后DNS服务器会响应消息,响应消息中包含查询到的IP地址,解析器会取出IP 地址,并将其写入浏览器指定的内存中。

    1.2.5解析器的内部原理

    解析器本身也不具备使用网络接发数据的功能。发送消息这个操作并不由解析器自身执行,而是委托给操作系统内部的协议栈来执行,然后通过网卡发送给DNS服务器

    顺带一提,向DNS服务器发送消息时,我们当然也需要知道DNS服务器的IP地址。只不过这个IP地址是作为TCP/IP的一个设置项目事先设置好的。不需要去查询。

    Windows中的设置如下图

    1.3全世界DNS服务器的大接力

    1.3.1DNS服务器的基本工作

    来自客户端的查询信息包含以下3种信息

    (a)域名

           服务器、邮件服务器(邮件地址中@后面的部分)的名称

    (b)Class

          Class的值永远是代表互联网的IN

      (c)记录类型

          表示域名对应何种类型的记录。当类型为A时,表示域名对应的时IP地址,当类型为MX时,表示域名对应的是邮件服务器

    DNS服务器会从与IP地址的对照表中查找相应的记录,并返回IP地址

    1.3.2域名的层次结构

    1.3.4通过缓存加快DNS服务器的响应

    DNS服务器有一个缓存功能,可以记住之前查询过的域名。如果要查询的域名和相关信息已经在缓存中,那么就直接返回响应

    并且,当要查询的域名不存在时,“不存在”这一响应结果也会被缓存,这样,当下次查询的这个不存在的域名时,也可以快速响应。

    缓存机制有一点需要注意,那就是当信息被缓存后,原本的注册信息可能会被修改,这时缓存的信息就有可能是不正确的,因此,DNS服务器中保存的信息都会设置一个有效期,当缓存中的信息超过有效期后,数据就会从缓存中删除。

    1.4委托协议栈发送消息

    1.4.1数据收发操作概览

    (1)创建套接字(创建套接字阶段)

    (2)将套接字连接到服务器的套接字上(连接阶段)

    (3)收发数据(通信阶段)

    (4)断开管道并删除套接字(断开阶段)

    1.4.2创建套接字阶段

    计算机会同时进行多个数据的通信操作,比如打开两个浏览器窗口,同时访问两个web浏览器。这时有两个数据收发在同时进行,也就需要创建两个不同的套接字。

    同一台计算机上可能同时存在多个套接字,在这种情况下,我们就需要一种方法来识别某个特定的套接字。这种方法就是描述符

    只要我们出示描述符,协议栈就能够判断出我们希望用哪一个套接字来连接或者收发数据

    1.4.3连接阶段

    应用程序调用Socket库中名为connect的程序来完成这一操作,需要指定描述符、服务器IP地址和端口号这3个参数

    端口号,就是用来让通信的另一方能够识别的出套接字的机制。

    服务器上所使用的端口号时根据应用的种类事先规定好的   web是80号端口,电子邮件是25号端口

  • 相关阅读:
    Oracle EBS-SQL (BOM-17):检查8层BOM.sql
    Oracle EBS-SQL (BOM-16):检查多层BOM.sql
    Oracle EBS-SQL (BOM-15):检查多层BOM(含common BOM).sql
    Oracle EBS-SQL (OM-1):查询订单发货明细.sql
    Oracle EBS-SQL (BOM-14):检查工艺路线明细.sql
    Oracle EBS-SQL (PO-14):检查供应商信息sql
    Oracle EBS-SQL (PO-13):检查采购物料无一揽子协议价格.sql
    Oracle EBS-SQL (INV-7):检查接收中记录数.sql
    Oracle EBS-SQL (INV-6):检查监督帐户别名处理.sql
    Oracle EBS-SQL (PO-12):检查期间请购单的下达记录数.sql
  • 原文地址:https://www.cnblogs.com/zhuxuan1997/p/9771186.html
Copyright © 2011-2022 走看看