网络相关内容

网络编程

概述

计算机网络是通过传输介质、传输设备在通信协议的规定下进行数据传输和资源共享的系统,可以将多个不同的计算机系统连接起来构成整个互联网。

网络分层

osi模型将整个网络通信系统分为7层。由下往上分别是

物理层

整个开放系统的基础,管理了网络物理传输,涉及的是比特流相关信息,主要功能是为上一层提供数据传输功能。

数据链路层

实现计算机网络中的点对点的传输,把原始的、有差错的物理传输改成逻辑上可靠的传输。

网络层

实现ip地址之间的网络传输,功能包括路由选择、网络寻址、流量控制、拥塞控制、网络互连

传输层

实现端点到端点之间的数据传输,比如使用tcp或者udp进行数据传输

会话层

会话层的主要功能是负责应用程序之间建立、维持和中断会话,同时也提供对设备和结点之间的会话控制,协调系统和服务之间的交流,并通过提供单工、半双工和全双工3种不同的通信方式,使系统和服务之间有序地进行通信。

表示层

表示层关心所传输数据信息的格式定义,其主要功能是把应用层提供的信息变换为能够共同理解的形式,提供字符代码、数据格式、控制信息格式、加密等的统一表示。

应用层

直接为应用程序服务,处理一系列相关的业务等。

网络协议

IP协议

IP协议的作用在于把各种数据包准备无误的传递给对方,其中两个重要的条件是IP地址和MAC地址。由于IP地址是稀有资源,不可能每个人都拥有一个IP地址,所以我们通常的IP地址是路由器给我们生成的IP地址,路由器里面会记录我们的MAC地址。而MAC地址是全球唯一的。

TCP协议

TCP(传输控制协议)是面向连接的传输层协议。TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。TCP协议采用字节流传输数据。

三次握手

三次握手的过程如下:

  • 客户端发送SYN包(SYN=1,ACK=0)给服务器。
  • 服务器收到SYN包后,回应一个SYN/ACK包(SYN=1,ACK=1),表示确认客户端的请求,并且表示服务器也希望建立连接。
  • 客户端收到服务器的SYN/ACK包后,发送一个ACK包(ACK=1)给服务器,表示确认服务器的请求。
    通过三次握手,客户端和服务器都确认了对方的存在和可用性,建立了一个可靠的连接。这个过程也确保了数据的可靠传输,避免了重复发送和不必要的数据流。
四次挥手

四次握手的过程如下:

  • 客户端发送一个FIN包(FIN=1)给服务器,表示客户端不再发送数据。
  • 服务器收到FIN包后,回应一个ACK包(ACK=1)给客户端,表示确认客户端的请求。
  • 服务器也发送一个FIN包(FIN=1)给客户端,表示服务器不再发送数据。
  • 客户端收到服务器的FIN包后,回应一个ACK包(ACK=1)给服务器,表示确认服务器的请求。
    通过四次握手,客户端和服务器都确认了双方不再发送数据,关闭了连接。这个过程也确保了数据的完整性,避免了数据丢失和不必要的数据流。

UDP协议

UDP(User Datagram Protocol,用户数据报协议)是一种轻量级的传输层协议,它与TCP协议一样工作在OSI模型的传输层,但是不像TCP协议提供面向连接的可靠传输。UDP协议主要用于需要快速传输数据,但对于数据可靠性要求不高的场景,例如实时流媒体、在线游戏、DNS等。

HTTP协议

HTTP,超文本传输协议,它是互联网上应用最为广泛的一种网络协议。HTTP是一种应用层协议,它是基于TCP协议之上的请求/响应式的协议。HTTP协议是Web浏览器和Web服务器之间通信的标准协议。HTTP指定客户端与服务器如何建立连接、客户端如何从服务器请求数据,服务器如何响应请求,以及最后如何关闭连接。HTTP连接使用TCP/IP来传输数据。

  • 默认情况下,客户端在端口80打开与服务器的一个TCP连接,URL中还可以指定其他端口。
  • 客户端向服务器发送消息,请求指定路径上的资源。这个资源包括一个首部,可选地(取决于请求的性质)还可以有一个空行,后面是这个请求的数据。
  • 服务器向客户端发送响应。响应以响应码开头,后面是包含数据的首部、一个空行以及所请求的文档或错误消息。
  • 服务器关闭连接。
HTTPS协议

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单来说就是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。它是一个URL scheme(抽象标识符体系),句法类同http:体系,用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。

请求类型
  • GET:用于从服务器获取资源。当客户端向服务器发送GET请求时,服务器将根据请求的URL获取资源,并将该资源返回给客户端。GET请求中的数据是通过URL参数传递的,因此GET请求的数据大小受到URL长度的限制。

  • POST:用于向服务器提交数据。当客户端向服务器发送POST请求时,服务器将使用请求中包含的数据更新或创建指定的资源。POST请求中的数据是通过请求体传递的,因此POST请求的数据大小没有限制。

  • PUT:用于向服务器上传数据。当客户端向服务器发送PUT请求时,服务器将使用请求中包含的数据更新或创建指定的资源。PUT请求中的数据是通过请求体传递的,因此PUT请求的数据大小没有限制。

  • DELETE:用于删除服务器上的资源。当客户端向服务器发送DELETE请求时,服务器将删除指定的资源。

  • HEAD:类似于GET请求,但是服务器只返回响应头信息,而不返回响应体信息。HEAD请求通常用于检查资源的元数据(例如,是否已修改、最后修改时间等),而不必下载整个资源。

  • OPTIONS:用于检索与资源相关的通信选项。当客户端向服务器发送OPTIONS请求时,服务器将返回有关支持的HTTP方法、请求头、响应头等信息。

  • TRACE:用于测试客户端与服务器之间的连接。当客户端向服务器发送TRACE请求时,服务器将返回一个带有客户端发送数据的HTTP响应,以便客户端可以查看数据是否被修改。

  • CONNECT:用于建立与服务器的网络连接。CONNECT请求通常用于HTTPS代理,以建立与目标服务器的加密连接。

状态码

HTTP状态码是指在HTTP协议中,当浏览器向服务器发出请求时,服务器返回的响应结果的状态码。HTTP状态码用来表示服务器端对请求的处理结果,不同的状态码对应着不同的处理结果。常见的HTTP状态码包括:

1xx:信息状态码,表示服务器已经接收到请求,正在处理中。

2xx:成功状态码,表示服务器已经成功处理了请求。

200 OK:请求成功,服务器已经返回相应的内容。

201 Created:请求成功,并且服务器已经创建了新的资源。

204 No Content:请求成功,但是服务器没有返回任何内容。

3xx:重定向状态码,表示请求的资源已经被移动到其他地方。
301 Moved Permanently:请求的资源已经被永久移动到其他地方。

302 Found:请求的资源已经被临时移动到其他地方。

304 Not Modified:请求的资源未被修改,可以直接从缓存中获取。

4xx:客户端错误状态码,表示客户端的请求有错误。
400 Bad Request:请求错误,服务器无法理解请求的格式。

401 Unauthorized:请求需要认证或授权,但是用户未提供有效的凭证。

403 Forbidden:服务器拒绝了请求,因为客户端没有权限访问请求的资源。

404 Not Found:请求的资源不存在。

5xx:服务器错误状态码,表示服务器在处理请求时发生了错误。
500 Internal Server Error:服务器内部错误,无法完成请求。

503 Service Unavailable:服务器暂时无法处理请求,通常是因为过载或维护等原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机网络和云计算是紧密相关的领域,它们的发展和进步相互促进和推动。下面是计算机网络和云计算相关的一些内容: 1. 网络架构 网络架构是计算机网络和云计算的基础,它决定了系统的性能和安全性。传统的网络架构通常是基于物理设备和固定拓扑结构的,而云计算则采用虚拟化技术,将计算资源、存储资源、网络资源等按需分配,从而实现更加灵活和高效的网络架构。 2. 网络安全 网络安全是计算机网络和云计算面临的共同挑战。网络攻击和数据泄露等问题对云计算应用的安全性造成了威胁,因此网络安全已经成为云计算应用的必要条件。针对这一问题,云计算服务商采取了多种安全措施,如数据加密、身份认证、访问控制等。 3. 虚拟化技术 虚拟化技术是云计算的核心技术之一,它可以将计算资源、存储资源、网络资源等虚拟化为虚拟机,并按需分配给用户使用。虚拟化技术可以提高资源利用率,降低成本,并且可以实现资源的快速部署和管理。 4. 软件定义网络(SDN) 软件定义网络(SDN)是一种新型的网络架构,它将网络控制平面和数据转发平面分离,从而实现网络资源的灵活调配和管理。SDN技术可以提高网络的可编程性和可扩展性,为云计算应用提供更加灵活和高效的网络服务。 5. 网络功能虚拟化(NFV) 网络功能虚拟化(NFV)是一种新型的网络虚拟化技术,它将传统网络设备的功能虚拟化为软件,从而实现网络功能的灵活调配和管理。NFV技术可以提高网络的可编程性和可扩展性,为云计算应用提供更加灵活和高效的网络服务。 总之,计算机网络和云计算是相互促进和推动的领域,它们的发展和进步需要不断地创新和改进。未来,计算机网络和云计算将会更加紧密地结合在一起,为人们带来更加高效、安全和可靠的服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值