WEB和网络基础
第一章
使用HTTP协议访问WEB
- 浏览器输入URL
- 请求后端服务器
- 后端服务器经过处理之后返回相应的信息(resource)
发送请求的机器,我们可以叫做客户端(client)
。
处理请求的机器,我们可以叫做服务器
。
客户端和服务器之间的协议就是我们的主角:HTTP。换句话说,WEB是建立在HTTP协议之上的。
TCP/IP协议族
简单介绍TCP/IP
想知道HTTP,就得知道TCP/IP协议族。
通常我们使用的网络(包含互联网),是在TCP/IP协议族上运作的。HTTP只是TCP/IP协议族内的一个。TCP/IP协议族 > HTTP协议
在互联网上,不同计算机之间想要通信的话,就需要制定一些双方都要遵守的协议(protocol)。TCP/IP协议族就是所有协议族的统称。这样的一种使用较广的协议。就好像秦始皇书同文,车同轨是一个道理。我们当然也可以自己制定协议,但是我们的协议不被大部分人所知道,和其他人交流是有困难的。
还有一种说法TCP/IP协议就是简单的代指TCP和IP这两个协议。
TCP/IP协议族能够被广泛的接受肯定是有他的好处的。具体什么好处我们接下来会谈的!
好处1:分层管理
分层是很重要的一个概念,一般我们会分为四层:应用层、传输层、网络层和数据链路层。
分层的好处:1、分层就和java写接口一样,哪错了改哪,可以避免牵一发动全身。2、简化协议,让协议更加清楚明了。分层分的好就好像公司员工之间相互协作一样可以各自负责各自的功能,互相之间不会有很大的影响。只需要知道某一层要干什么,而不需要知道其他层具体怎么干!
好处2:通信传输流
客户端经过每一层时消息(resource)会被加工。服务器端接收到消息之后会不断校验和剥离之前给消息增加的包装。
客户端经过每一层时会被打上一个该层所属的首部信息。反之,接收端在层与层之间传输的时候会把对应的首部信息给去掉!
这种把信息包装起来的做法称之为封装(encapsulate)
具体分层之每一层
- 应用层(FTP、DNS、HTTP)
应用层决定了向用户提供服务时通信的活动。说白了应用层就是说你这个请求要去干什么,来个主要的目标,知道了这个目标之后,根据不同的协议来告诉你怎么干。然后往下面传。下面的协议会去实现这个请求的目的,帮助这个请求到达目的地。我们这个餐厅要做什么菜系。 - 传输层(TCP协议、UDP协议)
顾名思义。就是决定怎么处理和切割数据。是安全为主还是速度为主。根据不一样的需求虚则不一样的协议。网络上的餐厅,把顾客的订单分成一个个的包。 - 网络层(IP协议)
这一层上处理的对象是数据包。数据包是网络传输的最小单位。该层会为数据包规划路线,要怎么到达客户端的路线,并且把数据包给到客户端。网络上的外卖员! - 数据链路层
处理硬件。所有硬件的东西都在数据链路层处理。硬件包括:操作系统、硬件的设备驱动、NIC(网卡)、光纤等物理可见的部分。每个客户的物理地址,每个客户的实际信息。
各种协议
与HTTP协议关系最好的协议:IP、TCP、DNS
IP
IP(Internet Protocol)网络协议:位于网络层。IP协议的作用是把各种数据包传输给对面。要保证传输内容的正确其中最重要的就是IP地址和MAC地址。
IP地址可能会发生变化。但是MAC地址基本不会发生变化。
IP地址是节点被分配到的地址。MAC地址是网卡的固定地址。IP地址还可以和MAC地址进行配对。
总而言之,IP协议的主要作用:需要找对路径发包。
找对路径专业叫做路由选择,就好像送快递一样,上一个站点只需要放到下一个站点,不需要了解这个快递最终怎么到达目的地。那么怎么去找下一个站点,在中转的时候会采用ARP协议(Address Resolution Protocol)去找下一个站点。ARP是一种用以解析地址的协议,可以根据IP地址反查出对应的MAC地址。
所以单一的一台计算机是无法知道网络之间包传输的全部过程的。
TCP
TCP协议位于传输层。用来提供可靠的字节流服务。字节流服务(Byte Stream Service)指的是为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。可靠指的是能够把数据准确可靠的传送给对方。
确保数据可以安全到达
TCP协议采取了三次握手的策略(three-way handshaking)。用TCP协议把数据送出去之后,TCP不会对传送后的情况置之不理,他一定会向对方确认是否成功送达。握手过程中使用了TCP标志SYN(synchronize)和ACK(acknowledgement)。
发送端先发一个带SYN的数据包给对面。对面接收到之后,回传一个SYN/ASK的包,告诉发送端我收到了。最后发送端再发一个ASK包,告诉对面我知道你收到了。对面接收到ASK包之后代表三次握手结束。
如果握手中的某一个环节出现了问题,那么发送端会重新发送一个相同的包。
DNS服务
DNS(Domain Name System)服务是和HTTP协议一样位于应用层的协议。他提供域名到IP地址之间的解析服务。
计算机既可以被赋予IP地址,也可以被赋予主机名和域名。(IP地址找MAC地址用的是ARP协议)
DNS解决的问题:计算机只认识数字0 1。但是我们人类对于字母更加敏感。所以我们用字母来代表一串数字。字母就是域名,数字就是IP地址。然后DNS是用来一一对应域名和IP地址的。
协议之间的关系
浏览器上输一个域名,先去访问DNS,把域名转换成IP地址。
接下访问这个IP地址。HTTP协议生成HTTP请求报文。
TCP协议把报文进行切割。
IP协议规划路线,开始传输。
请求到资源之后,目的IP地址的计算机把响应通过同样的方式发送给请求方。
URL和URI
URI(Uniform Resource Identifier):统一资源标识符。
URL(Uniform Resource Locator):统一资源定位符。文章来源:https://www.toymoban.com/news/detail-785409.html
URI代表的是资源。URL代表的是资源的路径。显然URI是包含URL的。文章来源地址https://www.toymoban.com/news/detail-785409.html
到了这里,关于HTTP、TCP/IP协议族、分层管理、DNS、URI的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!