计算机网络读书笔记 DAY1

今日阅读:1.1生成HTTP请求消息,1.2向DNS服务器查询Web服务器的IP地址,1.3全世界DNS服务器大接力

HTTP协议

一般的URL:

        http: + // + web服务器名 + / + 目录名 + / + .... + 文件名 

        开头的http也就是协议名,访问不同的服务器会用到不同的协议

常用的请求方法:

        GET        POST        PUT        DELETE  等

请求的结构:

        请求行:大致了解请求的内容。

        请求头:每行包含一个头字段,用于表示请求的附加信息。消息头的行数根据具体情况可变,一直延伸到空行为止。

        请求空行:没啥用,但是得有。

        请求体:包含客户端向服务器发送的数据,例如用POST请求向Web服务器发送网页表单数据。

响应的结构:

        状态行:http版本,状态码,响应短语(用来解释状态码的短语)

        消息头:每行包含一个头字段,用于表示请求的附加信息。消息头的行数根据具体情况可变,一直延伸到空行为止。

        空行:没啥用,但是得有。

        消息体:包含服务器向客户端发送的数据,例如从文件中读取的数据,或者CGI应用程序输出的数据等。消息体的内容作为二进制数据来处理。

响应状态码:

        1xx:告知请求的处理进度和情况

        2xx:成功

        3xx:表示需要进一步操作

        4xx:客户端错误

        5xx:服务器错误

关于请求和响应:

        当使用浏览器向服务器发送访问一个页面资源时,浏览器会收到访问页面的请求,然后返回页面的数据。浏览器拿到数据后解析数据,并反馈在页面上。在解析数据时如果解析到图片,那么就会先根据图片大小源码设置给对应地区留白,然后浏览器在我们不知情的情况下,通过源码解析的图片位置再次向服务器发送一个请求,请求访问某个图片。服务器接收后将图片资源响应回去,浏览器完成页面布局。浏览器两次请求是由于访问同一个页面多个资源导致,但是服务器无需知道哪个资源与哪个关联,他们只需要知道根据单独发送来的请求消息给出特定的处理即可。

什么是IP地址

为什么需要学ip:

        生成http消息之后,接下来我们需要将解析后的网址通过操作系统发送给web服务器,而发送的信息有一个硬性要求,就是必须得有ip地址,因此在发送给web服务器之前还需要解决的一步就是把URL中的域名解析成目标服务器的ip地址

什么是ip:

        可以简单理解为网络上每台计算机的家庭住址。

简单了解TCP/IP:

        TCP/IP的结构就是由一些小的子网,通过路由器连接起来组成的一个巨大的网络。这里的子网可以理解为用集线器连接起来的几台计算机,我们将其看作一个单位,叫做子网。将多个子网通过路由器连接起来,就形成了一个网络。ip就是网络中每台计算机的落户地址。每台计算机的ip都不同。(如果相同,那计算机可能就连不上网了)。

        通过ip地址我们可以判断出访问对象的服务器的位置,从而将消息发送到服务器。大致是发送者发送的消息先通过子网的集线器转发到距离比较近的路由器,路由器判断下一个路由器的位置,然后再由路由器一步一步传输,最后发送到目标位置。

ip地址的组成:

        由32比特组成,也就是4个字节,每个字节八位,大致是这个样子:

                xxxxxxxx  xxxxxxxx  xxxxxxxx  xxxxxxxx

        转化成字节的话,那么也就是从二进制到十进制,每位变成了0-255之间的某个数,例如10.11.12.13

子网掩码:

        xxxxxxxx  xxxxxxxx  xxxxxxxx  xxxxxxxx,这些二进制码那部分表示网络号哪部分表示主机号是无法区分的,因此就需要子网掩码

                xxxxxxxx  xxxxxxxx  xxxxxxxx  xxxxxxxx

子网掩码   11111111  11111111  11111111  00000000

        子网掩码与原ip地址一一对应,1表示的部分为网络号,0表示的部分为主机号

特殊ip地址:

        当主机号都是0:表示整个子网

        当主机号都是1:表示向子网以上所有设备发送包,即“广播”。

域名和ip地址的关系:

多对一的关系:一个ip地址可以对应多个域名,一个域名只能对应一个ip地址。

什么是DNS服务器

        DNS服务器是用于查询域名ip地址的字典。

        直接使用ip地址,不使用域名进行网站的访问是完全可以的,但是比如我们先要访问百度(www.baidu.com),我们更容易记得的是百度这个名字,而不是百度公司所用的服务器的ip地址,就像是我们只知道电话簿里有谁,但记不得他们的电话号码一样。

域名的层次结构

         域名的层次结构是从右向左递减的。例如www.baidu.com就是baidu.com的子网,baidu.com就是com的子网,com是.(根域)的子网。根域中只含有13个服务器的ip地址

网站访问的流程

        当浏览器访问某个网站时,会首先调用计算机操作系统socket库中的resolver解析器方法,将域名格式解析成DNS服务器所需要的格式,然后通过操作系统底层的协议栈将查询信息发送给距离此计算机最近的DNS服务器去查询该域名对应的web服务器的ip地址,如果最近的DNS服务器中有缓存(以前查过)那么就会将缓存中的ip地址响应给客户端。如果没有缓存,那么就会将请求的查询信息发送给根域服务器。如果要查询的是www.baidu.com。那么根域服务器会首先查找有没有注册该域,如果没有,那么就解析该域名最高级目录:com,然后返回给最近的DNS服务器存有com域的服务器ip,让他到此处寻找,然后最近的DNS就会向com域所在的DNS服务器的ip发送请求,com域所在的DNS服务器查询没有该域,然后返回存有baidu.com域名的DNS服务器的ip给最近的DNS服务器。然后最近的DNS服务器再次去查找baidu.com所在的DNS服务器,最终找到了www.baidu.com域的ip地址,并将其返回给最近的DNS服务器,最近的DNS服务器将最终ip地址结果响应给浏览器所在的计算机,操作系统调用对应的解析方法将回馈回来的信息解析好,解析出需要查找的ip地址信息,并将其存储在指定的内存地址中(就是变量的引用)。最终浏览器在将内存中存储的地址拿出来使用进行访问。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aristocrat l

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值