了解web及网络基础

了解web及网络基础

以下内容简单的说明了一下TCP/IP协议族中HTTP协议、DNS服务、IP协议的一些概念和关系。笔者只是对知识点进行了总结,仅供参考: )

转载请注明出处:了解web及网络基础

1.1使用HTTP协议访问Web

在一些大厂秋招面试的时候,会问到这样一个问题:当我们在web浏览器的地址栏输入URL时,Web页面是如何呈现的?

在还没有HTTP协议基础的同学,最简单的解释即:

1. 在浏览器地址栏内输入URL之后,信息会被送往某处。
2. 然后从某处获得响应之后,内容就会显示在Web页面上。

够简单了吧.. Web浏览器向Web服务器发送请求、获取文件资源等信息之后,再将内容显示在浏览器上。

像这种通过发送请求获取服务器资源的浏览器,都可以称为客户端。因此,像浏览器、原生应用都可以称为客户端。因为都是通过向服务器发送请求的方式获取数据的。

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

1.2 网络基础TCP/IP协议族

为了理解HTTP协议,有必要先了解一下TCP/IP协议族。这里不要有误区,认为TCP/IP协议族特指TCP协议和IP协议。TCP/IP是互联网相关的各类协议族的总称。因此,HTTP、FTP、TCP、UDP、IP等协议和DNS服务都是TCP/IP协议族的子集。

1.2.1 TCP/IP的分层管理

TCP/IP协议族里重要的一点就是分层。TCP/IP协议族按层次分别分为以下4层:应用层、传输层、网络层、数据链路层。层次的区分参考OSI参考模型。

其实将TCP/IP协议族层次化是有好处的。比如,如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体替换掉。而分层之后只需要把变动的层替换掉即可。

TCP/IP协议族各层次的作用如下:

应用层:应用层决定了向用户提供应用服务时通信的活动。应用服务包括常见的HTTP协议、FTP协议和DNS服务。

传输层:传输层提供处于网络连接中的两台计算机之间的数据传输。在传输层有两个性质不同的协议:TCP(Transmission Control Protocol, 传输控制协议),UDP(User Data Protocol, 用户数据包协议)。这两个协议的区别可以参考wiki: TCP, UDP

网络层:网络层用户处理网络上流动的数据包。数据包是网络传输的最小数据单位。与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。IP协议就位于网络层。

数据链路层:又叫网络接口层,主要用于处理连接网络的硬件部分。如操作系统、硬件设备驱动、网络适配器(网卡)、光纤等。硬件上的范畴均在链路层的作用范围之内。

1.2.2 TCP/IP通信传输流

由上图可以看出,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。也就是说,客户端通过应用层、传输层、网络层、数据链路层到达服务器;而服务器以相反的方向到达客户端。

以HTTP举例。

客户端:
1. 首先,作为发送端的客户端在应用层(HTTP协议)发出一个查询订单的HTTP请求
2. 接着,在传输层(TCP协议)把从应用层处收到的数据(HTTP请求报文,之后的文章会涉及)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。(TCP协议的作用)
3. 最后,在网络层(IP协议),增加作为通信目的地的MAC地址后转发给数据链路层。

接收端:
接收端的服务器在数据链路层接收到数据,按序号往上发送,一直到应用层。当数据包传输到应用层之后,才能算真正接收到有客户端发送过来的HTTP请求。

值得注意的是,在数据传输过程中,由上图可以看出,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。

这种把数据信息包装起来的做法称为封装

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

1.3.1 负责传输的IP协议

按照TCP/IP协议族层次进行分类,IP协议位于网络层。这里要注意的是,不要把IP协议和IP地址混在一起,这里谈的IP是一种协议的名称。

IP协议的作用是将各种数据转发给对方。而要保证确实传送到对方,则需要满足各类条件。其中两个重要的条件分别是: IP地址MAC地址

IP地址指明了计算机被静态或动态分配到的地址,MAC地址是网卡所属的地址。同时,IP地址是可变的,而MAC地址是不会发生变化的。其中,MAC地址也叫物理地址、链路地址或者硬件地址。下面是我本地IP地址和MAC地址截图。

1.4.2 确保可靠的TCP协议

按照TCP/IP协议族的分层管理中,TCP协议位于传输层,提供可靠的字节流服务

所谓字节流服务是指为了方便传输,TCP协议会将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指能够把数据准确可靠的传输给对方。

简言之,TCP协议为了传输数据更加方便,将大数据分割成数据包并且打上标志,同时能够确保数据准确无误的传输给对方。

TCP协议提供可靠的传输服务而采用了三次握手(Three-way handshaking)策略。TCP协议把数据包发送出去之后,不会对之后的数据置之不理,而是会确认对方时候成功收到数据。因此,握手过程中使用了主要两种TCP标志----SYN和ACK。三次握手的过程如下:

1. 客户端向服务器发送SYN形式的数据包,表示客户端需要建立连接请求。
2. 服务端接收到之后,回传一个带有SYN/ACK标志的数据包给客户端,表示接受连接请求。
3. 客户端此时会向服务端ACK,表示接收到消息。

第一二次握手的目的是确保服务端能够接收到客户端的消息并且能够正确的应答。第二三次握手的目的是确保客户端能够接收到服务端的消息并且能够做出正确的应答。

那两次握手可以吗?不行。两次握手之后,客户端必须给服务端回传消息。这样做的目的是为了防止请求延迟或中断而导致服务端等待客户端的消息造成带宽等资源的浪费。详细的三次握手和四次分手可以参考这篇文章。传送门: 理解TCP协议的三次握手和四次分手

如果在握手过程中某个阶段因为某些原因中断了,TCP协议会再次以相同的顺序发送相同的数据包。

1.4.3 负责域名解析的DN服务

DNS服务同HTTP协议位于应用层,它提供域名到IP地址之间的解析服务。从定义可以知道,可以通过DNS服务将域名解析成IP地址;同样的,也可以将IP地址反查相应的域名。

最后以一张图片来说明各种协议与HTTP协议的关系。

下一篇文章会针对HTTP/1.1协议结构的知识点做总结。

未完待续: )

时间: 2024-10-10 07:33:03

了解web及网络基础的相关文章

http基础(1.了解web及网络基础,2.简单的http协议)

第一章:了解web及网络基础 1.http:超文本传输协议 2.tcp/ip协议族:通常使用的网络是在tcp/ip协议族的基础上运作的,而http属于它内部的一个子集. 3.tcp/ip协议族按层次分别分为:应用层.传输层.网络层.数据链路层.分层的好处就是分工明确,方便后续修改维护. (1)应用层:

HTTP知识普及系列:Web及网络基础

根据web浏览器地址栏中指定的URL,Web浏览器从Web服务器端获取文件资源等信息,从而显示出Web页面. Web使用一种名为HTTP(超文本传输协议)的协议作为规范,完成从客户端到服务器端等一系列运作流程.而协议是指规则的约定. WWW(world wide web)万维网. 3项WWW构建技术: 把SGML(标准通用标记语言)作为页面的文本标记语言的HTML: 作为文档传递协议的HTTP: 指定文档所在地址的URL. 目前主流的HTTP协议版本是1997年1月公布的HTTP/1.1. TC

HTTP协议(一)——了解Web及网络基础

一.使用HTTP协议访问Web Web页面不会凭空显示出来,根据Web浏览器地址栏中指定的URL,Web浏览器从Web服务器获取文件资源等信息,从而显示出Web页面. 像这种通过发送请求获取服务器资源的Web浏览器等,都可称为客户端.

web及网络基础

关于本http系列博客 本系列博客内容全部来自或参考自<图解http>,不过博客中的图示基本上为博主自己手动绘制,部分图可能来自其它地方,但都有标注. 常见协议的分类 分层 常见协议 应用层 http.ftp.snmp.dns 传输层 tcp.udp 网络层 ip.icmp 链路层 ieee802.3.pppoe 传输示意图 以http举例来说,客户端发送的数据交给传输层tcp,这时数据会被分割成一个个小块,并且对每个小块数据加上对应的端口号进行封装,封装好后移交给网络层.网络层收到数据后会再

Web及网络基础学习(一)

2019.10.16 1.TCP.IP分层  应用层.网络层.传输层.数据链路层 2.各层讲解 应用层 决定了向用户提供应用服务时通信的活动.例如FTP(File Transfer Protocol 文件传输协议)和DNS(Domain  Name System 域名系统)以及HTTP协议 传输层  提供处于网络连接中的两台计算机之间的数据传输.有两个性质不同的协议:TCP(Transmission Control Protocol 传输控制协议)和UDP(User Data Protocol

网络基础篇----计算机网络基本概述(1)

享受生活  热爱挑战                                                                刘明远分享    一   计算机网络基本概述(1) 每章一段话: 不要让自己闲下来,给自己找些事情做.哪怕是看看书. 正文   (提示:本章内容比较无聊,最好当看故事一样来看,不必记下只需了解,内容基础) 1什么是计算机网络 号称新的"电力火花"是以计算机.通信.信息技术为支撑的计算机网络技术. 计算机网络将两台或多台计算机通过电缆或网络设

网络基础实用知识(五)

第二章认识网络常用设备(一) 一.     家庭用路由器 1.家庭路由器图例 家用路由器在市场上品牌很多,设置方法看各路由器说明书.家庭路由器一般作为家庭网的出口设备. 2.家庭路由器连接示意图 3.设置方法 连线 按照说明书给的路由器ip地址,配置电脑ip与路由器同网段. 在浏览器里输入:http://路由器ip地址 输入说明书提供的用户名和密码登陆路由器 配置上网方式:根据你实际情况配置静态地址或者PPPOE拨号. 配置是否开启DHCP. 设置无线开放状态包括:SSID的发布.密码等. 联网

Docker 学习笔记【2】 Docker 基础操作实,Docker仓库、数据卷,网络基础学习

Docker 学习笔记[3] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,实操 网络基础  ---------高级网络配置和部分实战案例学习 ============================================================= Docker 学习笔记[1]Docker 相关概念,基本操作--------实操记录开始 ============================================================= 被

Python服务器开发二:Python网络基础

Python服务器开发二:Python网络基础 网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. HTTP是高层协议,而TCP/IP是个协议集,包过许多的子协议.包括:传输层的 FTP,UDP,TCP协议等,网络层的ip协议等,高层协议如HTTP,telnet协议等,HTTP是TCP/IP的一个子协议. socket是对TCP/IP协议的封装和应用(程序员层面上).也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如