作为WEB的网络基础。在浏览器输入敲下回车的时候发生了什么?
内容来自 图解HTTP 笔记
1 作为WEB的网络基础。在浏览器输入敲下回车的时候发生了什么?
① 浏览器访问WEB服务器中的数据之前,需要先知道WEB服务器在哪里。
那反问自己是如何连接到互联网的?通过WIFI?网络基站?以上这两种在接入网络时候是如何确定自己存在的,也就是说怎么确定自己的身份?唯一的地址值 IP地址;所以我要想访问WEB服务器需要知道的第一件事情是,它的IP地址是多少?
② 在日常生活中,只要上网便离不开各样的网页,只要有网页都晓得存在一个网址。我们是通过网址寻找到WEB服务器的地址,那又是如何实现的呢?
这个问题之前先问一下自己,如果IP地址能够访问,为何又搞出一个网址呢?当我们看自己上网设备的网络地址时候,发现有一连串的数字,记住这一个地址还是蛮容易的一件事情。若是每天需要在浏览器中畅游上百个网站时,估计需要花费大量时间喽。所以网址存在的意义在于能够让我们方便记忆。
此时我们如何找到WEB地址?是通过DNS服务器,DNS是什么?Domain Name System,翻译为域名系统。也就意味着当输入网址回车之后,先访问 DNS 服务器,获取WEB服务器的IP地址。
③ 当我们找到了WEB服务器的地址,就准备开始访问。此时怎么把这条信息发送到服务器,告诉它我需要WEB服务器上的东西呢?回想一下我们是如何畅游在互联网的,通过自己唯一身份地址,IP地址,那IP地址是来自于哪里?是TCP/IP 协议的。我们通过这个协议把消息发送到服务器,那协议是什么?协议只是一种约定,告诉双方我们是如何发送数据的。
④ 既然知道是通过 TCP/IP 协议传递数据,那它都包括哪些部分?应用层、传输层、网络层、数据链路层。协议是分层设计的,此顺序是自定向下。数据链路层决定物理设备之间是如何传输的比如路由器,交换机,HUB等,网络层决定不同局域网之间如何传输的即IP地址不同的网络号之间,传输层主要决定数据传输过程是否可靠包括TCP与UDP,应用层表示有哪一些应用在网络中发送数据和接收数据。
既然TCP/IP 协议是分层设计的,在数据发送和接收时候,都发什么什么?
当数据发送时,是自顶向下发送,即从应用层到数据链路层。每一层都会把数据进行添加标记封装而且对于下层来讲,上层无论传递什么,都是以数据的方式存储并添加自己特有的标记当做下一层的数据向下传递直到最后一层。当接收数据时,刚好相反,自底向上发送,即从数据链路层到应用层。每层收到数据之后取下标记,把数据传递上层。直到应用层,把要发送的数据呈现出来。
那网络层如何在不同的局域网之间畅游呢?依靠每一个设备有全球唯一的MAC地址,在我们用IP地址请求WEB服务器时,先判断是否是当前局域网里的,如果不是,返回路由的MAC地址,在数据链路层打包发送到路由,路由再往下一级转发。中间通过ARP协议,即地址解析协议(Address Resolute Protocol),通过IP地址寻找到下一个设备的MAC地址。
⑤ 汇总一下,在浏览器里输入网址,通过DNS服务器获取WEB服务器的IP地址;通过IP地址不断到达WEB服务器的路由,一直到把消息发送给WEB服务器;当WEB服务器收到了请求消息后就知道是谁在请求,顺着把需要的东西到浏览器。
2 浏览器收到WEB服务器的消息后开始解析消息。那如何解析?便是超文本标记语言HTML。当下WEB技术非常庞大,往回看,最简单的三个核心是什么?① HTML;② HTTP;③ URL。若想到浏览器也算是核心啊,但浏览器可以看做是解析HTML格式文件的一种途径,文本文档打开也没有问题。
① HTML:一种标记语言,规定了这种格式的文件是什么样,以及在浏览器里如何解析;
② HTTP,也就是本书的核心主题,作为应用层的协议,规定了消息发送到WEB服务器时是怎样标记的,也即请求消息格式。
③ URL,叫统一资源标识符,就是咱们日常经常用的网址,表示资源地点在哪里。还有一个叫做 URI,通过字符串表示某一互联网资源。资源不仅包括地点还表明这地点里面有什么东西。