HTTP学习之网络基础篇

第一章 了解WEB及网络基础

使用HTTP协议访问web

web页面显示原理:当我们在浏览器的地址栏输入URL后,web浏览器会根据我们所输入的URL从web服务器中获取相应的文件资源等信息,从而显示出整个web页面。
那么像这种,通过发送请求获取服务器端的资源的web浏览器等,称为客户端。

Web是使用一种HTTP协议 (超文本传输协议) 作为规范,完成从客户端到服务器等一系列运作过程。因此,可以说,web是建立在HTTP协议上通信的。

网络基础TCP/IP

  1. TCP/IP协议族
    通常我们使用的网络是在TCP/IP协议族的基础上运作的。HTTP是其的一个子集。
    书中介绍,“计算机与网络设备要互相通信,双方就必须基于相同的方法。比如由那一边先发起通信,用什么语言等。”正如我们在日常生活中的一样,如果两个人想要畅通的交流,那么这两个人至少应该会一种共同的语言。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。那么这种规则称为协议。
    我们通常把与互联网有关的协议集合起来总称为TCP/IP。
  2. TCP/IP的分层管理
    TCP/IP协议族按层次可分为4层:应用层、传输层、网络层和数据链路层。那么,把它层次化是有好处的。假设互联网中只有一个协议统筹且该协议未分层,如果在某个地方需要改变时,我们需要把所有部分都进行修改。那么分层之后,我们只需要更改需要更改的地方,其他部分不变。这样会节省很多时间。

各层作用如下:
应用层:决定向用户提供应用服务时通信的活动。
传输层:提供处于网络连接中的两台计算机之间的数据传输。
网络层:处理在网络上流动的数据包。该层规定了通过怎样的路径到达对方计算机,并把数据包传给对方。 当与对方计算机之间通过多台计算机或者是网络设备进行传输时,网络层所起的作用是在众多选项中选择一条传输路线。

TCP协议的功能是:(简单来说)
客户端:把原始文件分割成数据包。
服务器端: 把数据包还原成原始文件。

链路层: 用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动等。
为什么要分割成数据包?

当不同计算机之间传输数据文件时,由于传输整个文件的速度比较慢,如果把文件分割成一个个数据包,传输速度会有所增加。就如一口吃掉一个大馒头和把馒头一小块一小块的吃的区别。而且,若是以整个文件的方式传输,当出现错误时,我们就必须要把整个文件重新传输,而当以数据包的形式传输时,哪一个数据包出错,只需重新发送该数据包即可。

利用TCP/IP协议族进行通信时,会通过分层顺序与对方通信。发送端从应用层往下走,而接收端往上走到应用层。即,
客户端 —————————————————————> 服务器
应用层->传输层->网络层->数据链路层- - - ->数据链路层->网络层->传输层->应用层

以HTTP为例:
在应用层,客户端发出一个请求某个Web页面的HTTP请求。
为传输方便,在传输层(TCP协议)把从应用层收到的数据(HTTP请求报文)分割成数据包,并在各个报文上打上标记序号和端口号后转发给网络层。

扫描二维码关注公众号,回复: 9552202 查看本文章

打上标记序号: 打标记序号是为了能够让服务器端的TCP协议把这些数据包按顺序重组还原成原始请求文件。
打上端口号: 网络层的作用是处理网络上流动的数据包,那么,打上端口号后,IP协议就会把数据包运送到指定端口位置。

接收端的服务器在链路层接收到数据,按顺序往上传送,一直到应用层。 此时才算真正接收到客户端发来的请求。

与HTTP关系密切的协议: IP 、 TCP 和 DNS

  1. IP协议
    IP (Internet Protocol ) 协议按层次分在网络层,其作用是把各种数据包传送给对方。
    确保传送到对方需要满足各类条件,其中两个最重要的是:IP地址 和 MAC地址。
    IP地址指明了节点被分配到的地址,MAC地址是网卡所属的固定地址。 IP地址可以和MAC地址进行配对。 IP地址可变,但MAC地址基本不会更改。

路由选择
在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线。这种机制称为路由选择。

举个例子
> 当你寄快递时,只有你到了集散中心才能知道快递公式是否肯收件发货,该快递 >公司的集散中心检查货物的送达地址,明确下一站该送往哪一个地区的集散中心。 >接着,那个集散中心自会判断是否能送到对方的家中。

  1. TCP协议

按层次分,TCP协议位于传输层,且提供可靠的字节流服务。所谓的字节流服务是指,为了传输方便将大块数据分割成以报文段为单位的数据包进行管理。

为了准确无误地将数据送至目标处,TCP协议采用了三次握手(three-way handshaking ) 策略。 握手过程采用了TCP协议的标志——SYN (synchronize) 和 ACK (acknowledgement) 。
发送端会首先发送一个带有SYN标记的数据包给对方。接收端接手后,会返回一个带有SYN/ACK标记的数据包以表示传达确认信息。发送端收到后,再回传一个带有ACK标志的数据包,代表握手结束。
如果握手在某个阶段莫莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。

###负责域名解析的DNS服务
DNS(Domain Name System) 服务是和HTTP协议一样位于应用层的协议。它提供域名到IP地址之间的解析服务。
计算机可以被赋予IP地址,也可被赋予主机名和域名。比如,www.hacker.jp
我们日常使用浏览器时,输入的常是主机名和域名。然而,计算机终究是只能处理数字的,那么,怎么样能使我们输入的字母加数字的网址被计算机理解呢?
为解决此问题,DNS服务应运而生。DNS协议提供通过域名查找IP地址, 或逆向从IP地址反查域名的服务。

假如我们想要访问 www.shandamengcheng666.jp 该网页, 发送端首先会通过DNS协议获取到该网址对应的IP地址,然后在根据该IP地址找到对应的服务器,从而获得网页。

URI 和 URL
URL (Uniform Resource Locator, 统一资源定位符)正是我们在浏览器地址栏所输入的网页地址。比如: www.baidu.com
URI (Uniform Resource Identifier, 统一资源标识符).
URI 用字符串标识某一互联网资源。URL 表示资源的地点(互联网上所处的位置)。显然,URL是 URI 的子集。
那么详细的两者区别是什么呢?
在看了别人的解释后,我的理解是:
假设你认识一个大官,那么如果有一天你和朋友吹嘘说,你认识王五这位大官,显然王五是他的名字,那么对应到网络中,王五这个人就是资源, URI就是资源的标识。
只有名字是不行的是吧,别人以为你说假话呢,那么你说出王五他是具体的哪里的大官,办公室在哪,别人就相信了吧。 那么王五在哪当官,具体办公室的位置对应于网络中就是资源的位置,即URL。

(以上是我个人学习笔记,多摘录自《图解HTTP》一书中,欢迎交流探讨 : ) )

发布了32 篇原创文章 · 获赞 10 · 访问量 3430

猜你喜欢

转载自blog.csdn.net/shandamengcheng/article/details/87907283