计算机网络常识

文章目录

1、HTTP

  • 是超文本传输协议(Hypertext Transfer
    Protocol)的缩写,是一种用于传输超文本数据的协议。它是互联网上应用最为广泛的协议之一,用于浏览器和Web服务器之间的通信。
  • HTTP使用客户端-服务器模型,客户端发送HTTP请求给服务器,服务器根据请求返回相应的HTTP响应。请求和响应都由HTTP协议规定了特定的格式。
  • HTTP的基本功能包括传输、请求和响应。它可以传输各种类型的数据,如文本、图像、音频和视频等。
  • HTTP请求方法有GET、POST、PUT、DELETE等,用于向服务器发送不同类型的请求。
  • HTTP响应状态码表示服务器对请求的处理结果,如200表示请求成功,404表示请求的资源不存在等。
  • 除了基本功能,HTTP还支持一些其他的特性,如缓存、认证、安全等。
  • 通过HTTP头部字段,可以传递一些附加信息,如请求的内容类型、编码方式、Cookie等。

2、HTTP状态码

以下是常见状态码的功能:

1xx(信息性状态码):

100(继续):表示服务器已经收到了客户端的请求,客户端可以继续发送请求的剩余部分。

  • 101(切换协议):表示服务器正在根据客户端的请求切换协议。

2xx(成功状态码):

200(成功):表示客户端的请求已成功被服务器接收、理解和处理。

  • 201(已创建):表示服务器已成功处理客户端的请求,并创建了新的资源。
  • 204(无内容):表示服务器已成功处理了请求,但没有返回任何内容。

3xx(重定向状态码):

301(永久重定向):表示请求的资源已永久移动到新的URL。

  • 302(临时重定向):表示请求的资源临时移动到新的URL。
  • 304(未修改):表示客户端缓存的资源是最新的,无需重新下载。

4xx(客户端错误状态码):

400(错误请求):表示服务器无法理解客户端的请求。

  • 401(未授权):表示客户端未经授权,需要进行身份验证。
  • 403(禁止访问):表示服务器拒绝客户端的请求。
  • 404(未找到):表示服务器无法找到请求的资源。

5xx(服务器错误状态码):

500(内部服务器错误):表示服务器在处理请求时遇到了错误。

  • 502(错误网关):表示服务器作为网关或代理,从上游服务器接收到无效的响应。
  • 503(服务不可用):表示服务器暂时无法处理请求,通常是因为服务器过载或维护。
    DNS(Domain Name System)是互联网中用于将域名解析为IP地址的系统。它充当了互联网的"电话簿",将易于记忆的域名转换为计算机可理解的IP地址。

3、DNS

组成部分:

  1. DNS服务器:DNS服务器存储着域名和对应的IP地址的映射关系。它们可以分为多个层次的服务器,包括根域名服务器、顶级域名服务器、权威域名服务器和本地域名服务器。

  2. 根域名服务器:根域名服务器是整个DNS层次结构的最顶层,它存储了顶级域名服务器的地址,负责返回顶级域名服务器的IP地址给请求者。

  3. 顶级域名服务器:顶级域名服务器是指管理特定顶级域名(如.com、.org、.net等)的服务器。每个顶级域名都有一个对应的顶级域名服务器,它负责返回下一级的权威域名服务器的IP地址。

  4. 权威域名服务器:权威域名服务器是存储着具体域名和对应IP地址映射关系的服务器。当收到查询请求时,它会返回所请求域名的IP地址。

  5. 本地域名服务器:本地域名服务器是用户计算机或网络中的DNS服务器。当用户发起域名查询时,本地域名服务器会先检查自己的缓存,如果找到了对应的IP地址,则直接返回给用户。如果没有找到,则向其他DNS服务器发送查询请求,获取并缓存相应的IP地址。

DNS的工作流程:

如下:

  1. 用户在浏览器中输入一个域名。
  2. 本地域名服务器检查缓存,如果有对应的IP地址,则直接返回给用户。
  3. 如果缓存中没有对应的IP地址,则本地域名服务器向根域名服务器发起查询请求。
  4. 根域名服务器返回顶级域名服务器的IP地址给本地域名服务器。
  5. 本地域名服务器再向顶级域名服务器发起查询请求。
  6. 顶级域名服务器返回权威域名服务器的IP地址给本地域名服务器。
  7. 本地域名服务器最终向权威域名服务器发起查询请求。
  8. 权威域名服务器返回域名对应的IP地址给本地域名服务器。
  9. 本地域名服务器将获取到的IP地址缓存,并返回给用户。
  10. 用户的浏览器使用获取到的IP地址与目标服务器建立连接。

4、Session和Cookie

都是用于在Web应用中跟踪用户状态和存储用户信息的机制,但它们有一些联系和区别。

联系:

  1. 存储用户信息:Session和Cookie都可以用于存储用户相关的信息,例如用户ID、用户名、购物车内容等。
  2. 跨页面保持状态:Session和Cookie都可以用于在不同页面之间保持用户的状态,以便用户在整个会话期间保持登录状态或进行个性化设置。
  3. 服务器端存储:Session和Cookie的数据都是存储在服务器端的,客户端只保存了对应的标识符。

区别:

  1. 存储位置:Cookie是将数据存储在客户端的浏览器中,而Session是将数据存储在服务器端的内存或数据库中。
  2. 安全性:由于Cookie是存储在客户端,所以容易受到跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等安全攻击。而Session的数据存储在服务器端,相对来说更安全。
  3. 存储容量:Cookie的存储容量较小,一般不超过4KB。而Session的存储容量较大,可以存储更多的数据。
  4. 生命周期:Cookie可以设置过期时间,可以在浏览器关闭后仍然存在,而Session的生命周期通常与用户会话相关,当用户关闭浏览器后,Session会被销毁。

使用Cookie的情景:

  • 假设有一个电子商务网站,用户在登录页面输入用户名和密码进行登录。
  • 如果选择使用Cookie来保持用户的登录状态,服务器在验证通过后会生成一个包含用户信息的加密字符串,并将该字符串存储在一个名为"login"的Cookie中,然后将该Cookie发送给客户端浏览器。
  • 客户端浏览器会保存该Cookie,并在每次请求该网站的时候将该Cookie发送给服务器。
  • 服务器通过解析Cookie中的信息来识别用户,并保持用户的登录状态。
  • 这样,用户在整个会话期间都可以保持登录状态,无需每次都重新输入用户名和密码。

使用Session的情景:

  • 假设有一个博客网站,用户在登录页面输入用户名和密码进行登录。如果选择使用Session来保持用户的登录状态,服务器在验证通过后会为该用户在服务器端创建一个唯一的Session对象,并生成一个Session ID。
  • 然后,服务器将该Session ID发送给客户端浏览器,并将该Session对象存储在服务器端的内存或数据库中。
  • 客户端浏览器会保存该Session ID,并在每次请求该网站的时候将该Session ID发送给服务器。
  • 服务器通过Session ID来识别用户,并从服务器端的存储中获取对应的Session对象,以获取用户的登录状态和其他相关信息。

综上所述,

  • 对于需要在客户端保持状态的场景,例如记住登录状态、保持个性化设置等,可以选择使用Cookie。
  • 而对于需要在服务器端保持状态的场景,例如存储用户信息、保持会话状态等,可以选择使用Session。

5、GET请求和POST请求

是HTTP协议中常用的两种请求方法,它们在发送请求和接收响应时有一些区别。

1. 参数传递位置:

在GET请求中,参数是通过URL的查询字符串(query string)传递的,即将参数附加在URL的末尾,以"?"符号开始,参数之间使用"&"符号分隔。而在POST请求中,参数是通过请求体(request body)传递的,即将参数放在请求的主体部分。

2. 参数长度限制:

由于GET请求将参数直接附加在URL中,URL的长度是有限制的。不同的浏览器和服务器对URL长度的限制可能不同,一般来说,GET请求的参数长度应该控制在2KB左右。而POST请求没有长度限制,可以传输大量的数据。

3. 安全性:

GET请求的参数会显示在URL中,可以被用户轻易看到,因此不适合传递敏感信息。而POST请求的参数在请求体中,不会显示在URL中,相对更安全。

4. 数据类型:

GET请求一般用于获取数据,不会对服务器产生副作用,也不会改变服务器的状态。而POST请求一般用于提交数据,可能会对服务器产生副作用,比如创建、更新或删除资源。

5. 缓存:

GET请求可以被浏览器缓存,下次再请求相同的URL时可以直接从缓存中获取数据。而POST请求一般不会被缓存,每次请求都会从服务器获取最新数据。

6、PING命令

是一个网络诊断工具,用于测试主机之间的连通性。它通过向目标主机发送ICMP(Internet Control Message Protocol)回显请求消息,然后等待目标主机返回回显回复消息,从而判断网络连接状况。

PING命令的使用

很简单,只需要在命令行窗口中输入"ping"加上目标主机的IP地址或域名,然后回车即可。

例如,"ping www.google.com"或"ping 192.168.0.1"。

PING命令的功能

主要包括以下几个方面:

  1. 测试网络连接:通过向目标主机发送ICMP请求,可以检测网络是否正常连接,以及网络延迟情况。
  2. 测试主机是否在线:如果目标主机能够回复PING请求,说明该主机正常在线工作。
  3. 测试网络质量:通过PING命令返回的延迟时间(ping延迟)可以判断网络的质量,延迟时间越小,网络质量越好;延迟时间越大,网络质量越差。
  4. 检测网络故障:如果PING命令返回的是超时或失败的消息,说明网络可能存在故障,可以通过这种方式进行初步排查。
  5. 获取目标主机的IP地址:如果在PING命令中使用域名而不是IP地址,它会将域名解析为IP地址,帮助我们了解目标主机的具体IP地址。

7、HTTP和HTTPS

是用于在客户端和服务器之间进行数据传输的协议,它们之间主要区别如下:

1. 安全性:

HTTP是明文传输协议,数据在传输过程中不经过任何加密处理,容易被窃听和篡改。而HTTPS通过使用SSL/TLS协议对数据进行加密,保证了数据传输的安全性,防止了数据被窃听和篡改。

2. 加密方式:

HTTP不进行数据加密,而HTTPS使用SSL/TLS协议对数据进行加密。SSL/TLS协议使用了公钥加密和对称加密两种方式,保证了数据的机密性和完整性。

3. 端口号:

HTTP默认使用80端口进行通信,而HTTPS默认使用443端口进行通信。这样的区分使得服务器能够根据端口号来区别处理HTTP和HTTPS的请求。

4. 证书:

HTTPS需要使用数字证书来验证服务器的身份。证书由权威的第三方机构颁发,用于证明服务器的合法性和可信度。客户端在建立HTTPS连接时会验证服务器的证书,确保通信的安全性。

5. 性能:

由于HTTPS需要进行加密和解密的操作,相比HTTP而言,会稍微增加一些计算和通信的开销,因此在性能上可能略有差异。

总结来说,HTTP是一种不安全的协议,适用于对数据安全性要求不高的场景,而HTTPS通过使用加密技术确保了数据传输的安全性,适用于对数据安全性要求较高的场景,如在线支付、网上购物等。在现代互联网中,随着对数据安全和隐私的要求不断提高,HTTPS的应用越来越广泛。

6、Http处理流程

HTTP(超文本传输协议)是一种用于在Web浏览器和Web服务器之间传输数据的协议。它使用明文传输数据,不提供数据的加密和安全性保护。HTTP的处理流程如下:

  1. 客户端发起HTTP请求:客户端(通常是Web浏览器)向服务器发送HTTP请求,其中包括请求的方法(GET、POST等)、请求的URL、请求头和请求体等信息。

  2. 服务器接收和处理请求:服务器接收到客户端的请求后,根据请求的URL和方法执行相应的操作,如获取资源、处理表单数据等。

  3. 服务器发送HTTP响应:服务器根据处理结果生成HTTP响应,包括响应的状态码、响应头和响应体等信息,然后将响应发送回客户端。

  4. 客户端接收和处理响应:客户端接收到服务器的响应后,根据响应的状态码和内容进行相应的处理,如显示网页内容、处理响应数据等。

7、Https处理流程

HTTPS(超文本传输安全协议)是在HTTP基础上加入了安全性保护的协议。它使用SSL/TLS协议对数据进行加密和身份验证,确保数据传输的安全性。HTTPS的处理流程如下:

  1. 客户端发起HTTPS请求:客户端向服务器发送HTTPS请求,其过程与HTTP相似。

  2. 服务器发送数字证书:服务器在响应中发送数字证书给客户端,证书中包含了服务器的公钥和其他信息。

  3. 客户端验证证书:客户端使用内置的证书颁发机构(CA)列表来验证服务器发送的证书的合法性和有效性。验证包括检查证书的签名、有效期和颁发机构等。

  4. 客户端生成随机密钥:客户端生成一个随机的对称密钥,用于后续的数据加密和解密。

  5. 客户端使用服务器的公钥加密密钥:客户端使用服务器的公钥对生成的随机密钥进行加密,然后将加密后的密钥发送给服务器。

  6. 服务器使用私钥解密密钥:服务器使用自己的私钥对收到的加密密钥进行解密,得到客户端生成的随机密钥。

  7. 客户端和服务器之间的加密通信:客户端和服务器使用客户端生成的随机密钥进行对称加密通信,保证数据的安全性。

值得注意的是,HTTPS还可以进行证书链验证和服务器身份验证等操作,以确保通信的安全性和可靠性。

8、TCP(传输控制协议)和UDP(用户数据报协议)

是两种常用的网络传输协议,用于在计算机网络中传输数据。它们在以下几个方面存在差异:

  1. 可靠性:TCP是一种可靠的协议,它通过使用确认和重传机制来确保数据的可靠传输。如果数据包丢失或损坏,TCP会自动重新发送丢失的数据包。而UDP是一种不可靠的协议,它不提供确认和重传机制,发送的数据包可能会丢失或者以无序的方式到达。

  2. 连接性:TCP是一种面向连接的协议,通信双方在传输数据之前需要建立一个连接。连接的建立需要进行三次握手,而断开连接需要进行四次挥手。UDP是一种无连接的协议,通信双方之间没有建立连接的过程。

  3. 速度:由于TCP提供了可靠性保证和连接管理,因此它的传输速度相对较慢。UDP则没有这些额外的开销,因此传输速度较快。

  4. 适用场景:由于TCP的可靠性和连接管理特性,它适用于需要确保数据完整性和顺序性的应用,如文件传输、电子邮件等。UDP则适用于对实时性要求较高的应用,如音视频传输、实时游戏等。

需要注意的是,TCP和UDP并不是对立的选择,而是根据应用场景的需求来选择合适的传输协议。在某些情况下,也可以将它们结合使用,例如在音视频传输中,可以使用UDP来传输实时数据,而使用TCP来传输控制信令和重要的控制信息。

9、IP(Internet Protocol,互联网协议)

是一种网络层协议,它负责在计算机网络中传输数据包。IP协议定义了数据包的格式和路由选择的机制,使得数据包能够在不同的网络之间传输。

IPv4

(Internet Protocol Version 4,互联网协议第四版)

  • 是IP协议的一种具体实现,它是目前广泛使用的IP协议版本。
  • IPv4使用32位地址表示网络上的主机或设备,这些地址由四个8位的数字组成,每个数字范围从0到255,以点分十进制的形式表示。
  • 例如,192.168.0.1就是一个IPv4地址。

IPv4提供了一些基本功能,包括:

  1. 数据包分组和封装:IPv4将传输的数据分割成小的数据包,并封装成IP数据包进行传输。
  2. 地址寻址和路由:IPv4使用IP地址来唯一标识网络上的主机或设备,通过路由选择机制,将数据包从源地址发送到目标地址。
  3. 差错检测:IPv4使用校验和来检测数据包在传输过程中是否出现错误,以保证数据的完整性。
  4. 分片和重组:如果数据包的大小超过了网络的最大传输单元(MTU),IPv4会将数据包进行分片,并在目标地址处进行重组。
  5. TTL(Time to Live):TTL字段用于限制数据包在网络中的存活时间,以防止数据包在网络中无限制地传输。

尽管IPv4在全球范围内广泛使用,但是由于互联网的快速发展和IP地址的有限性,IPv4的地址空间已经逐渐枯竭。因此,为了满足更多的设备连接和互联网的需求,IPv6(Internet Protocol Version 6,互联网协议第六版)作为IPv4的升级版本被提出和使用。IPv6使用128位地址,具有更大的地址空间和更多的扩展功能,以逐步替代IPv4。

10、TCP的可靠性

是通过以下几种原理和机制来实现的:

1. 序列号和确认机制:

每个TCP报文段都有一个序列号,用于标识报文段在发送方和接收方之间的顺序。接收方通过确认序列号来告知发送方已收到的数据。如果发送方未收到确认,就会重新发送数据。

2. 窗口机制:

TCP使用滑动窗口机制来控制发送方和接收方之间的数据流量。发送方通过窗口大小来控制发送的数据量,接收方通过窗口大小来告知发送方可以接收的数据量。这样可以避免发送方发送过多的数据导致接收方无法及时处理。

3. 超时重传机制:

TCP使用超时重传机制来确保数据的可靠传输。发送方在发送数据后会启动一个定时器,如果在规定的时间内未收到确认,则认为数据丢失,会重新发送数据。

4. 拥塞控制机制:

TCP的拥塞控制机制用于避免网络拥塞。当网络出现拥塞时,TCP会减少发送速率以避免进一步加重网络负载。拥塞控制机制包括慢启动、拥塞避免和快速恢复等算法。

11、ARQ(Automatic Repeat reQuest)

是一种通过确认和重传机制实现可靠数据传输的协议。

  • ARQ协议主要用于在不可靠信道上进行数据传输,确保数据的完整性和正确性。
  • ARQ协议的基本原理是发送方发送数据后,接收方会对接收到的数据进行检验,并发送确认信息给发送方。
  • 如果发送方未收到确认信息或者接收方检验出错,发送方会重新发送相应的数据。

ARQ协议主要包括以下几种类型:

  1. 停止等待ARQ:发送方每发送一个数据帧就会等待接收方的确认,只有收到确认后才能发送下一个数据帧。如果发送方未收到确认,会重新发送相同的数据。

  2. 连续ARQ:发送方可以连续发送多个数据帧,而不需要等待接收方的确认。接收方在收到数据帧后会发送累积确认,确认已经接收到的数据帧,未收到的数据帧会被发送方重新发送。

  3. 选择性重传ARQ:接收方在收到数据帧后会发送确认信息,确认已经接收到的数据帧。如果发送方未收到确认信息,会认为数据帧丢失,会选择性地重新发送丢失的数据帧,而不是重传所有的数据帧。

ARQ协议通过确认和重传机制,能够提高数据的可靠性和正确性。不过,ARQ协议会增加传输延迟和带宽占用,因为需要等待确认和重传数据。因此,在设计网络协议时需要根据具体的需求和网络条件选择合适的ARQ协议类型。

12、OSI模型,TCP/IP模型

都是用于描述计算机网络通信的参考模型。

OSI模型

是国际标准化组织(ISO)制定的一种通信协议体系结构,它将网络通信划分为七个不同的层级,每个层级都有特定的功能和协议。这些层级分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每个层级之间通过接口进行通信,从物理层开始传输数据,逐层封装和解封装,最终到达应用层。

TCP/IP模型

是实际应用最广泛的网络通信模型,它由四个层级组成,分别是网络接口层、网络层、传输层和应用层。网络接口层负责处理物理连接和数据链路层的功能,网络层负责数据包的路由和寻址,传输层负责提供可靠的数据传输服务,应用层负责处理特定应用程序的通信需求。

总结来说,OSI模型是一个理论上的参考模型,用于描述网络通信的不同层级和协议。而TCP/IP模型是一个实际应用的网络通信模型,基于这个模型实现了互联网的通信协议,如TCP和IP。

相关推荐
超级战斗鸡5 小时前
计算机网络中的地址体系全解析(包含 A/B/C 类地址 + 私有地址 + CIDR)
网络·计算机网络
初听于你5 小时前
深入解析IP, ICMP, OSPF, BGP四大核心网络协议
服务器·网络·网络协议·计算机网络·信息与通信·信号处理
还下着雨ZG14 小时前
TCP/IP协议族详细介绍
网络·网络协议·tcp/ip·计算机网络
蒙奇D索大15 小时前
【计算机网络】[特殊字符] 408高频考点 | 数据链路层组帧:从字符计数到违规编码,一文学透四大实现方法
网络·笔记·学习·计算机网络·考研
JZZC21 天前
26. FTP
计算机网络·ftp·ensp
从负无穷开始的三次元代码生活1 天前
《计算机网络技术》期末1小时救急知识点概览——概念(一)
计算机网络
报错小能手2 天前
计算机网络自顶向下方法43——网络层 详解SDN控制平面
计算机网络·平面
JZZC23 天前
29. HTTP
计算机网络·http·ensp
报错小能手3 天前
计算机网络自顶向下方法33——网络层 路由器工作原理 输入端口处理和基于目的地转发 交换 输出端口处理
网络·计算机网络·智能路由器
Yurko133 天前
【计网】基于三层交换机和 RIP 协议的局域网组建
网络·学习·计算机网络·智能路由器