读 《网络是怎样连接的》 第一章总结

版权声明:阿欧,版权声明在哪? https://blog.csdn.net/a3765421/article/details/83788061

第一章 主干知识,就三点吧(我们在地址栏输入地址的时候发生了什么?——》生成数据,发送数据,接收并渲染数据)

  • 在浏览器的地址栏填域名(或者点击超链接之类的) 浏览器会自动把域名转成HTTP请求,这个请求会去向某个域名服务器要东西(把域名转成HTTP请求)
  • 是啊,找人要东西,找谁要呢,这就是第二个知识点了(由域名找ip)
  • 嗯,我知道找谁要了,但是,我怎么告诉他,我需要什么东西呢,这是第三个知识点.(委托操作系统发送消息-》建立socket连接)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1.先看看请求头是怎么样的吧:

//第一行是请求行,正常在浏览器输出http://www.baidu.com,这样用到的就是GET方法.若是写表单,则两者都有可能
POST/GET http://www.baidu.com
//第二行后的一部分叫请求头,这里有很多可以选择的属性
Host: www.baidu.com
Accept:*/* 
//第三部分叫请求体,注意的是,请求体与请求头之间要空一行

//请求体

现在这边请求体还没有东西,那么我们看看有东西的情况


POST http://www.666.com
Host: www.666.com
Accept:*/* 

admin = 123456
pass = 123456

在表单中选择向http://www.666.com提交请求,表单内容 admin填写123456,pass填写123456

另外 get传数据其实也行,如下

GET http://www.666.com?admin=123456&pass=123456
Host: www.baidu.com
Accept:*/* 

2.找谁要东西呢?

哈 ,可以找很多人要东西哈.http协议,对,就是url那一串最前面的东西,http就代表会去找web服务器要东西,

ftp的话就会去找ftp服务器要东西.现在 我们先关注找web服务器要东西吧

我们拥有什么?    我们现在拥有的是一条URL   http://www.666.com

它就是我们要找的web服务器,但是它现在的样子是给我们人类看的,在各种设备沟通中其本相是ip地址,所以啊,我们要把它转换成ip地址.

做这一步的操作就叫地址解析啦.

2.1 DNS服务器与客户端

现在我们要做地址解析这件事情,所以我们要知道什么是dns服务器.

dns服务器能够做的工作很多.比如吧域名变成ip地址(正向解析),把ip地址变成域名(反向解析),查域名的别名....

那,什么是dns客户端呢?

就是我们本机的dns解析器,它与dns服务器沟通,用域名得到其对应的ip

2.2 dns服务器的工作

dns服务器内部可以想象成有很多键值对,比如键是域名,值是ip地址,我拿着域名就能找到对应的ip地址了

那么 dns服务器是否一个就够用了呢, 哈 在公司内部的局域网里是没问题的,但是在整个互联网上怕是不行,

想想啊,这些键值对那么多,查询起来效率多低啊,所以会有很多dns服务器,

这些服务器之间还有层级结构,想象一个金字塔,越顶层的服务器数量越少.

看这个: www.baidu.com.  

这个域名中,从后往前看, 根域名是.   顶层域名是com 下层域名是baidu  web服务器是www

其中 www所在的web服务器需要在baidu这个域的dns服务器上注册, 

baidu所在的dns服务器与要在com服务器上注册

com域所在的服务器要在根服务器上注册, 

为什么要注册呢?

因为要查找啊~~。  我们每台dns服务器都默认记住了13个根服务器的ip,当某一台dns服务器收到了他的客户端dns解析器

所发送的解析请求时,他就会去问根服务器 .  你知道www.baidu.com 的ip吗, 根服务器告诉说哦,com这个服务器应该知道,我把它的ip告诉你 ,你去问他

dns服务器就去问com服务器,你知道www.baidu.com 的ip吗?    他说baidu服务器知道,

我们就去找baidu服务器,你知道www.baidu.com 的ip吗? baidu这个域名就把这个ip返回给了发问的dns服务器.

dns服务器忙活了那么久,工作完成了.就把它知道的答案。ip地址返回给了 dns解析器, 大功告成!!!

这个ip地址,就是我们的目标。我们找他要东西.

3.如何才能对话?

两个设备相隔很远,靠喊是没用的,所幸有网络相连, 在osi五层中 网络层里 相互之间建立socket,就可以不管底层如何而直接进行通讯了.

web服务器端先建立了socket,然后等待着我们去连接。   这部分不需要我们管,我们看看浏览器怎么做的:

,第一步,建立了一个socket.

第二步,建立连接:我们知道了对方的ip地址,就可以建立socket连接了,但我们发现,除了提供ip地址外,建立socket连接还要求提供端口号,这个我们填什么呢, 默认 web是80号端口,邮件是25号端口,我们填上就好了.

第三步,发送我们的HTTP请求

第四步,接收HTTP响应

第五步,断开连接.

ok,之后的事情,浏览器就把得到http响应渲染成页面给我们看好了.......

888888

 

猜你喜欢

转载自blog.csdn.net/a3765421/article/details/83788061