文章目录
- 1、HTTP
- 2、HTTP状态码
- 3、DNS
- 4、Session和Cookie
- 5、GET请求和POST请求
-
- [1. 参数传递位置:](#1. 参数传递位置:)
- [2. 参数长度限制:](#2. 参数长度限制:)
- [3. 安全性:](#3. 安全性:)
- [4. 数据类型:](#4. 数据类型:)
- [5. 缓存:](#5. 缓存:)
- 6、PING命令
- 7、HTTP和HTTPS
-
- [1. 安全性:](#1. 安全性:)
- [2. 加密方式:](#2. 加密方式:)
- [3. 端口号:](#3. 端口号:)
- [4. 证书:](#4. 证书:)
- [5. 性能:](#5. 性能:)
- 6、Http处理流程
- 7、Https处理流程
- 8、TCP(传输控制协议)和UDP(用户数据报协议)
- [9、IP(Internet Protocol,互联网协议)](#9、IP(Internet Protocol,互联网协议))
- 10、TCP的可靠性
-
- [1. 序列号和确认机制:](#1. 序列号和确认机制:)
- [2. 窗口机制:](#2. 窗口机制:)
- [3. 超时重传机制:](#3. 超时重传机制:)
- [4. 拥塞控制机制:](#4. 拥塞控制机制:)
- [11、ARQ(Automatic Repeat reQuest)](#11、ARQ(Automatic Repeat reQuest))
- 12、OSI模型,TCP/IP模型
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
组成部分:
-
DNS服务器:DNS服务器存储着域名和对应的IP地址的映射关系。它们可以分为多个层次的服务器,包括根域名服务器、顶级域名服务器、权威域名服务器和本地域名服务器。
-
根域名服务器:根域名服务器是整个DNS层次结构的最顶层,它存储了顶级域名服务器的地址,负责返回顶级域名服务器的IP地址给请求者。
-
顶级域名服务器:顶级域名服务器是指管理特定顶级域名(如.com、.org、.net等)的服务器。每个顶级域名都有一个对应的顶级域名服务器,它负责返回下一级的权威域名服务器的IP地址。
-
权威域名服务器:权威域名服务器是存储着具体域名和对应IP地址映射关系的服务器。当收到查询请求时,它会返回所请求域名的IP地址。
-
本地域名服务器:本地域名服务器是用户计算机或网络中的DNS服务器。当用户发起域名查询时,本地域名服务器会先检查自己的缓存,如果找到了对应的IP地址,则直接返回给用户。如果没有找到,则向其他DNS服务器发送查询请求,获取并缓存相应的IP地址。
DNS的工作流程:
如下:
- 用户在浏览器中输入一个域名。
- 本地域名服务器检查缓存,如果有对应的IP地址,则直接返回给用户。
- 如果缓存中没有对应的IP地址,则本地域名服务器向根域名服务器发起查询请求。
- 根域名服务器返回顶级域名服务器的IP地址给本地域名服务器。
- 本地域名服务器再向顶级域名服务器发起查询请求。
- 顶级域名服务器返回权威域名服务器的IP地址给本地域名服务器。
- 本地域名服务器最终向权威域名服务器发起查询请求。
- 权威域名服务器返回域名对应的IP地址给本地域名服务器。
- 本地域名服务器将获取到的IP地址缓存,并返回给用户。
- 用户的浏览器使用获取到的IP地址与目标服务器建立连接。
4、Session和Cookie
都是用于在Web应用中跟踪用户状态和存储用户信息的机制,但它们有一些联系和区别。
联系:
- 存储用户信息:Session和Cookie都可以用于存储用户相关的信息,例如用户ID、用户名、购物车内容等。
- 跨页面保持状态:Session和Cookie都可以用于在不同页面之间保持用户的状态,以便用户在整个会话期间保持登录状态或进行个性化设置。
- 服务器端存储:Session和Cookie的数据都是存储在服务器端的,客户端只保存了对应的标识符。
区别:
- 存储位置:Cookie是将数据存储在客户端的浏览器中,而Session是将数据存储在服务器端的内存或数据库中。
- 安全性:由于Cookie是存储在客户端,所以容易受到跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等安全攻击。而Session的数据存储在服务器端,相对来说更安全。
- 存储容量:Cookie的存储容量较小,一般不超过4KB。而Session的存储容量较大,可以存储更多的数据。
- 生命周期: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命令的功能
主要包括以下几个方面:
- 测试网络连接:通过向目标主机发送ICMP请求,可以检测网络是否正常连接,以及网络延迟情况。
- 测试主机是否在线:如果目标主机能够回复PING请求,说明该主机正常在线工作。
- 测试网络质量:通过PING命令返回的延迟时间(ping延迟)可以判断网络的质量,延迟时间越小,网络质量越好;延迟时间越大,网络质量越差。
- 检测网络故障:如果PING命令返回的是超时或失败的消息,说明网络可能存在故障,可以通过这种方式进行初步排查。
- 获取目标主机的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的处理流程如下:
客户端发起HTTP请求:客户端(通常是Web浏览器)向服务器发送HTTP请求,其中包括请求的方法(GET、POST等)、请求的URL、请求头和请求体等信息。
服务器接收和处理请求:服务器接收到客户端的请求后,根据请求的URL和方法执行相应的操作,如获取资源、处理表单数据等。
服务器发送HTTP响应:服务器根据处理结果生成HTTP响应,包括响应的状态码、响应头和响应体等信息,然后将响应发送回客户端。
客户端接收和处理响应:客户端接收到服务器的响应后,根据响应的状态码和内容进行相应的处理,如显示网页内容、处理响应数据等。
7、Https处理流程
HTTPS(超文本传输安全协议)是在HTTP基础上加入了安全性保护的协议。它使用SSL/TLS协议对数据进行加密和身份验证,确保数据传输的安全性。HTTPS的处理流程如下:
客户端发起HTTPS请求:客户端向服务器发送HTTPS请求,其过程与HTTP相似。
服务器发送数字证书:服务器在响应中发送数字证书给客户端,证书中包含了服务器的公钥和其他信息。
客户端验证证书:客户端使用内置的证书颁发机构(CA)列表来验证服务器发送的证书的合法性和有效性。验证包括检查证书的签名、有效期和颁发机构等。
客户端生成随机密钥:客户端生成一个随机的对称密钥,用于后续的数据加密和解密。
客户端使用服务器的公钥加密密钥:客户端使用服务器的公钥对生成的随机密钥进行加密,然后将加密后的密钥发送给服务器。
服务器使用私钥解密密钥:服务器使用自己的私钥对收到的加密密钥进行解密,得到客户端生成的随机密钥。
客户端和服务器之间的加密通信:客户端和服务器使用客户端生成的随机密钥进行对称加密通信,保证数据的安全性。
值得注意的是,HTTPS还可以进行证书链验证和服务器身份验证等操作,以确保通信的安全性和可靠性。
8、TCP(传输控制协议)和UDP(用户数据报协议)
是两种常用的网络传输协议,用于在计算机网络中传输数据。它们在以下几个方面存在差异:
-
可靠性:TCP是一种可靠的协议,它通过使用确认和重传机制来确保数据的可靠传输。如果数据包丢失或损坏,TCP会自动重新发送丢失的数据包。而UDP是一种不可靠的协议,它不提供确认和重传机制,发送的数据包可能会丢失或者以无序的方式到达。
-
连接性:TCP是一种面向连接的协议,通信双方在传输数据之前需要建立一个连接。连接的建立需要进行三次握手,而断开连接需要进行四次挥手。UDP是一种无连接的协议,通信双方之间没有建立连接的过程。
-
速度:由于TCP提供了可靠性保证和连接管理,因此它的传输速度相对较慢。UDP则没有这些额外的开销,因此传输速度较快。
-
适用场景:由于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提供了一些基本功能,包括:
- 数据包分组和封装:IPv4将传输的数据分割成小的数据包,并封装成IP数据包进行传输。
- 地址寻址和路由:IPv4使用IP地址来唯一标识网络上的主机或设备,通过路由选择机制,将数据包从源地址发送到目标地址。
- 差错检测:IPv4使用校验和来检测数据包在传输过程中是否出现错误,以保证数据的完整性。
- 分片和重组:如果数据包的大小超过了网络的最大传输单元(MTU),IPv4会将数据包进行分片,并在目标地址处进行重组。
- 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协议主要包括以下几种类型:
停止等待ARQ:发送方每发送一个数据帧就会等待接收方的确认,只有收到确认后才能发送下一个数据帧。如果发送方未收到确认,会重新发送相同的数据。
连续ARQ:发送方可以连续发送多个数据帧,而不需要等待接收方的确认。接收方在收到数据帧后会发送累积确认,确认已经接收到的数据帧,未收到的数据帧会被发送方重新发送。
选择性重传ARQ:接收方在收到数据帧后会发送确认信息,确认已经接收到的数据帧。如果发送方未收到确认信息,会认为数据帧丢失,会选择性地重新发送丢失的数据帧,而不是重传所有的数据帧。
ARQ协议通过确认和重传机制,能够提高数据的可靠性和正确性。不过,ARQ协议会增加传输延迟和带宽占用,因为需要等待确认和重传数据。因此,在设计网络协议时需要根据具体的需求和网络条件选择合适的ARQ协议类型。
12、OSI模型,TCP/IP模型
都是用于描述计算机网络通信的参考模型。
OSI模型
是国际标准化组织(ISO)制定的一种通信协议体系结构,它将网络通信划分为七个不同的层级,每个层级都有特定的功能和协议。这些层级分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每个层级之间通过接口进行通信,从物理层开始传输数据,逐层封装和解封装,最终到达应用层。
TCP/IP模型
是实际应用最广泛的网络通信模型,它由四个层级组成,分别是网络接口层、网络层、传输层和应用层。网络接口层负责处理物理连接和数据链路层的功能,网络层负责数据包的路由和寻址,传输层负责提供可靠的数据传输服务,应用层负责处理特定应用程序的通信需求。
总结来说,OSI模型是一个理论上的参考模型,用于描述网络通信的不同层级和协议。而TCP/IP模型是一个实际应用的网络通信模型,基于这个模型实现了互联网的通信协议,如TCP和IP。