浏览器:

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服务器会主动断开连接,传到客户端后客户端也会断开。连接断开,套接字被删除。

    

【网络是怎么连接的】一、浏览器与HTTP协议的更多相关文章

  1. 网络浅析(<<网络是怎么连接的>> 总结)

    概要 基本概念 网线 集线器 交换机 路由器 路由器和交换机 路由器和集线器 接入网 IP DNS 以太网 协议栈 网络连接过程 通信过程(浏览器 -> 服务器) 客户端和服务端 服务端的套接字 ...

  2. 聊聊iOS中网络编程长连接的那些事

    1.长连接在iOS开发中的应用 常见的短连接应用场景:一般的App的网络请求都是基于Http1.0进行的,使用的是NSURLConnection.NSURLSession或者是AFNetworking ...

  3. 翻译:让网络更快一些——最小化浏览器中的回流(reflow)

    关于reflowreflow(英音:[ri:’fləu] 美音:[ri’flo])在词典中的解释是回流,逆流.而在web应用中,翻译为回流有些牵强.我个人觉得,理解为回炉(重新塑形),似乎更加形象一点 ...

  4. linux学习之centos(二):虚拟网络三种连接方式和SecureCRT的使用

    ---操作环境--- 虚拟机版本:VMware Workstation_10.0.3 Linux系统版本:CentOS_6.5(64位) 物理机系统版本:win10  一.虚拟网络三种连接方式 当在V ...

  5. windows防火墙实验-命令行设置远程桌面连接以及禁止浏览器上网

    windows防火墙实验-设置远程桌面连接以及禁止浏览器上网 实验环境: 1.win2008远程桌面服务 2.win7-1 10.10.10.136 3.win7-2 10.10.10.153 实验步 ...

  6. Linux基石【第二篇】虚拟网络三种连接方式(转载)

    在虚拟机上安装完Centos系统后,开始配置静态IP,以方便在本宿主机上可以访问虚拟机,在曲折的配置中,了解到虚拟机还有三种连接方式:Bridged,NAT和Host-only,于是,我又一轮新的各种 ...

  7. C#检查网络是否可以连接互联网

    添加引用: using System.Runtime.InteropServices; using System.Net.NetworkInformation; [DllImport("wi ...

  8. Dual Path Networks(DPN)——一种结合了ResNet和DenseNet优势的新型卷积网络结构。深度残差网络通过残差旁支通路再利用特征,但残差通道不善于探索新特征。密集连接网络通过密集连接通路探索新特征,但有高冗余度。

    如何评价Dual Path Networks(DPN)? 论文链接:https://arxiv.org/pdf/1707.01629v1.pdf在ImagNet-1k数据集上,浅DPN超过了最好的Re ...

  9. 解决docker容器无网络、无法连接互联网----长期更新

    众所周知,docker有三种默认的网络模式,分别是: bridge host none 然后需要注意的就是内核转发这个,一定不要忘了!配置方法如下 echo -e "net.ipv4.ip_ ...

  10. [从源码学设计]蚂蚁金服SOFARegistry网络操作之连接管理

    [从源码学设计]蚂蚁金服SOFARegistry网络操作之连接管理 目录 [从源码学设计]蚂蚁金服SOFARegistry网络操作之连接管理 0x00 摘要 0x01 业务领域 1.1 应用场景 0x ...

随机推荐

  1. 题解 P1017 【进制转换】

    我赶jio这个题难道是让我们写快写? 不管了,赶紧把咕咕咕了一万年的题解写出来. 这个题就是考察负进制和在mod意义下的除法运算的基础运算. (其实也没多大问题) 首先我们先假设一个原始数据\(num ...

  2. Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest

    解决办法: 删除对应的jar 包下的文件 zip -d *.jar META-INF/*.RSA META-INF/*.SF

  3. Java程序员必精通之—synchronized

    更多Java并发文章:https://www.cnblogs.com/hello-shf/category/1619780.html 一.简介 相信每一个java程序员对synchronized都不会 ...

  4. 用函数递归的方法解决古印度汉诺塔hanoi问题

    问题源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规 ...

  5. 刚安装的程序要卸载,如何Ubuntu查看程序安装记录

    如果新装一个程序,突然发现需要卸载,又忘记了程序名字,怎么解决呢? /var/log/apt/history.log /var/log/apt/term.log /var/log/aptitude 看 ...

  6. luoguP1314 聪明的质监员 题解(NOIP2011)

    P1314 聪明的质监员 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include< ...

  7. go中变量的使用

    // 变量的使用 package main import "fmt" // 定义多个全局变量 var ( globalName = "Jackie" globa ...

  8. JavaScript阶乘算法

    题目: 计算所提供整数的阶乘. 如果使用字母n代表一个整数,则阶乘是所有小于或等于n的整数的乘积. 阶乘通常简写成 n! 例如: 5! = 1 * 2 * 3 * 4 * 5 = 120 使用递归实现 ...

  9. 大哥带我走渗透ii--时间盲注,布尔盲注

    5/27 基于布尔的盲注 我连题目都看不懂555,先去补充一点知识.https://blog.csdn.net/weixin_40709439/article/details/81355856 返回的 ...

  10. docker 安装cat

    1.下载cat cat 地址:https://github.com/dianping/cat 进入opt 创建cat文件夹 cd /opt/ mkdir cat cd cat 下载cat git cl ...