计算机网络chapter2——应用层

文章目录

  • 第2章 应用层
      • 章节引出——
    • 2.1应用层协议原理
      • 2.1.1 网络应用程序体系结构
      • (1)客户-服务器体系结构
      • (2)对等(P2P)体系结构
      • 2.1.2 进程通信
        • 1.客户和服务器进程
        • 2.进程与计算机网络之间的接口
        • 3. 进程寻址
      • 2.1.3 可供应用程序使用的运输服务
      • 课程引出——
      • 注意:吞吐量、带宽、宽带的区别
      • 2.1.4 因特网提供的运输服务
      • (1)TCP服务
      • (2)UDP 服务
      • (3)因特网运输协议所不提供的服务
      • 2.1.5 应用层协议
      • 2.1.6 本书涉及的5种网络应用
    • 2.2 Web和HTTP
      • 2.2.1HTTP概况
      • 2.2.2非持续连接和持续连接
      • 2.2.3HTTP 报文格式
      • 2.2.4 用户与服务器的交互:cookie
      • 2.2.5 Web 缓存
      • 2.2.6 条件GET方法
    • 2.3 因特网中的电子邮件
      • 2.3.1 SMTP
      • 2.3.2 与 HTTP 的对比
      • 2.3.3 邮件报文格式
      • 2.3.4 邮件访问协议
    • 2.4 DNS:因特网的目录服务
      • 2.4.1 DNS提供的服务…
      • 2.4.2 DNS 工作机理概述
      • 2.4.3 DNS 记录和报文
    • 2.5 P2P文件分发
    • 2.6 视频流和内容分发网
      • 2.6.1 因特网视频
      • 2.6.2 HTTP 流和DASH
      • 2.6.3 内容分发网
    • 2.7 套接字编程:生成网络应用
      • 2.7.1 UDP套接字编程
      • 2.7.2 TCP 套接宇编程
    • 2.8 小结

第2章 应用层

章节引出——

网络应用是计算机网络存在的理由。
在本章中,我们学习有关网络应用的原理和实现方面的知识。我们从定义关键的应用层概念开始,其中包括应用程序所需要的网络服务客户服务器进程运输层接口。我们详细考察几种网络应用程序,包括Web电子邮件DNS对等文件分发视频流(第9章关注多媒体应用,包括流式视频和VoIP)。然后我们将涉及开发运行在TCP和UDP上的网络应用程序。

2.1应用层协议原理

研发新应用程序时,你需要编写将在多台端系统上运行的软件。重要的是,你不需要写在网络核心设备如路由器或链路层交换机上运行的软件。即使你要为网络核心设备写应用程序软件,你也不能做到这一点。如我们在第1章所知,以及如图1-24所显示的那样,网络核心设备并不在应用层上起作用,而仅在较低层起作用,特别是在网络层及下面层次起作用
在这里插入图片描述

2.1.1 网络应用程序体系结构

规定了如何在各种端系统上组织该应用程序。在选择应用程序体系结构时,应用程序者很可能利用现代网络应用程序中所使用的两种主流体系结构之一:
客户-服务器体系结构对等(P2P)体系结构

在这里插入图片描述

(1)客户-服务器体系结构

在客户-服务器体系结构(client-server architecture)中,有一个总是打开的主机称服务器它服务于来自许多其他称为客户的主机的请求。一个典型的例子是Web应厢序,其中总是打开的Web服务器服务于来自浏览器(运行在客户主机上)的请求Web服务器接收到来自某客户对某对象的请求时,它向该客户发送所请求的对象作为应。值得注意的是利用客户-服务器体系结构,客户相互之间不直接通信;例如,在应用中两个浏览器并不直接通信。客户-服务器体系结构的另一个特征是该服务器具有定的、周知的地址,该地址称为PP地址)(我们将很快讨论它)。因为该服务器具有的、周知的地址,并且因为该服务器总是打开的,客户总是能够通过向该服务器的址发送分组来与其联系。具有客户-服务器体系结构的非常著名的应用程序包括WFTP、Telnet和电子邮件。图2-2a中显示了这种客户-服务器体系结构。

在一个客户-服务器应用中,常常会出现一台单独的服务器主机跟不上它所有客户求的情况。例如,一个流行的社交网络站点如果仅有一台服务器来处理所有请求,将很变得不堪重负。为此,配备大量主机的数据中心(datacenter)常被用于创建强大的虚服务器。最为流行的因特网服务——如搜索引擎(如谷歌、Bing和百度)、因特网商(如亚马逊、e-Bay和阿里巴巴)、基于Web的电子邮件(如 Gmail 和雅虎邮件)、社交网络(如脸书、Instagram、推特和微信),就应用了一个或多个数据中心。如在 1.3.3节所讨论的那样,谷歌有分布于全世界的30~50个数据中心,这些数据中心共同处理搜察YouTube、Gmail 和其他服务。一个数据中心能够有数十万台服务器,它们必须要供电维护。

(2)对等(P2P)体系结构

在一个 P2P体系结构(P2Parchitecture)中,对位于数据中心的专用服务器有最小的或者没有依赖
相反,应用程序在间断连接的主机对之间使用直接通信,这些主机对被称为对等方。这些对等方并不为服务提供商所有,相反却为用户控制的桌面机和膝上机所有,大多数对等方驻留在家庭、大学和办公室。因为这种对等方通信不必通过专门的服务器,该体系结构被称为对等方到对等方的。许多目前流行的、流量密集型应用都是P2P体系结构的。这些应用包括文件共享(例如BitTorrent)、对等方协助下载加速器(例如迅雷)、因特网电话和视频会议(例如Skype)。图2-2b中显示了P2P的体系结构。需要提及的是,某些应用具有混合的体系结构,它结合了客户-服务器和P2P的元素。例如,对于许多即时讯息应用而言,服务器被用于跟踪用户的IP地址,但用户到用户的报文在用户主机之间(无须通过中间服务器)直接发送

P2P体系结构的最引人人胜的特性之一是它们的自扩展性(self-scalability)。例如在一个P2P文件共享应用中,尽管每个对等方都由于请求文件产生工作负载,但每个对等方通过向其他对等方分发文件也为系统增加服务能力。P2P体系结构也是有成本效率的,因为它们通常不需要庞大的服务器基础设施和服务器带宽(这与具有数据中心的客户-服务器设计形成鲜明对比)。然而,未来P2P应用由于高度非集中式结构,面临安全性、性能和可靠性等挑战。

2.1.2 进程通信

在构建网络应用程序前,还需要对运行在多个端系统上的程序是如何互相通信的情况有一个基本了解。
用操作系统的术语来说,进行通信的实际上是进程(process)而不是程序。一个进程可以被认为是运行在端系统中的一个程序。当多个进程运行在相同的端系统上时,它们使用进程间通信机制相互通信。进程间通信的规则由端系统上的操作系统确定。而在本书中,我们并不特别关注同一台主机上的进程间的通信,而关注运行在不同端系统(可能具有不同的操作系统)上的进程间的通信。
在两个不同端系统上的进程,通过跨越计算机网络交换报文(message)而相互通信。发送进程生成并向网络中发送报文;接收进程接收这些报文并可能通过回送报文进行响应。图2-1显示了驻留在5层协议栈的应用层进程互相通信的情况。

1.客户和服务器进程

网络应用程序由成对的进程组成这些进程通过网络相互发送报文。例如,在Web应用程序中,一个客户浏览器进程与一台Web服务器进程交换报文。在一个P2P文件共享系统中,文件从一个对等方中的进程传输到另一个对等方中的进程。对每对通信进程,我们通常将这两个进程之一标识为客户(client),而另一个进程标识为服务器(server)
对于 Web而言,浏览器是一个客户进程,Web服务器是一台服务器进程。对于P2P文件共享,下载文件的对等方标识为客户,上载文件的对等方标识为服务器。你或许已经观察到,如在P2P文件共享的某些应用中,一个进程能够既是客户又是服务器。在P2P文件共享系统中,一个进程的确既能上载文件又能下载文件。无论如何,在任何给定的一对进程之间的通信会话场景中,我们仍能将一个进程标识为客户,另一个进程标识为服务器。我们定义客户和服务器进程如下:
在一对进程之间的通信会话场景中,发起通信(即在该会话开始时发起与其他进程的联系)的进程被标识为客户,在会话开始时等待联系的进程是服务器。

2.进程与计算机网络之间的接口

如上所述,多数应用程序是由通信进程对组成,每对中的两个进程互相发送报文一个进程向另一个进程发送的报文必须通过下面的网络进程通过一个称为套接字(Socket)的软件接口向网络发送报文和从网络接收报文。我们考虑一个类比来帮助我们理解套接字。电脑相当于一个小区,进程可类比于一座房子,里面有很多房子(65536),而它的套接字可以类比于它的门,当一个进程相位于另外一台主机上的另一个进程发送报文时,它把报文推出该门(套接字)。该进程假定该门到另外一侧之间有运输的基础设施,该设施将把报文传送到目的进程的门一旦该报文抵达目的主机,它通过接收进程的门(套接字)传递,然后接收进程对该据进行处理。

图2-3显示了两个经过因特网通信的进程之间的套接字通信(图2-3中假定由该使用的下面运输层协议是因特网的TCP协议)。如该图所示,套接字是同一台主机内层与运输层之间的接口
由于该套接字是建立网络应用程序的可编程接口,因此套接称为应用程序和网络之间的应用程序编程接口(ApplicationProgramming Interface,API)。
在这里插入图片描述

应用程序开发者可以控制套接字在应用层端的一切,但是对该套接字的运输层端几乎没控制权。应用程序开发者对于运输层的控制仅限于:①选择运输层协议;②也许能设定几个运输层参数,如最大缓存和最大报文段长度等(将在第3章中涉及)。一旦应用程发者选择了一个运输层协议(如果可供选择的话),则应用程序就建立在由该协议提供运输层服务之上。

3. 进程寻址

为了向特定目的地发送邮政邮件,目的地需要有一个地址。类似地,在一台主机上行的进程为了向在另一台主机上运行的进程发送分组,接收进程需要有一个地址。为了识该接收进程,需要定义两种信息:①主机的地址;②在目的主机中指定接收进程的识符
在因特网中,主机由其IP地址(IP address)标识。我们将在第4章中非常详细地讨论IP 地址。此时,我们只要知道I地址是一个32 比特的量且它能够唯一地标识该主机就够了。除了知道报文发送目的地的主机地址外,发送进程还必须指定运行在接收主机上的接收进程(更具体地说,接收套接字)。因为一般而言一台主机能够运行许多网络应用这些信息是需要的。目的地端口号/pont number)用于这个目的。已经给流行的应用分配了特定的端口号。例如,Web服务器用端口号80来标识。邮件服务器进程(使用SMTP协议)用端口号25来标识。用于所有因特网标准协议的周知端口号的列表能够在htp:/www.iana.org 处找到。我们将在第3章中详细学习端口号。

2.1.3 可供应用程序使用的运输服务

课程引出——

前面讲过套接字是(应用程序进程和传输层协议之间的接口。在发送端的应用程序将报文推进该套接字。在该套接字的另一侧,运输层协议负责从接收进程的套接字得到该报文。包括因特网在内的很多网络提供了不止一种运输层协议。当开发一个应用时,必须选择一种可用的运输层协议。
一个运输层协议能够为调用它的应用程序提供什么样的服务呢?我们大体能够从四个方面对应用程序服务要求进行分类:可靠数据传输、吞吐量、定时和安全性

注意:吞吐量、带宽、宽带的区别

1、网络带宽(bandwidth):强调网络最大的数据传输速率,即传输数据率理论峰值。
2、网络吞吐量(throughput):强调网络实际的数据传输速率。
带宽和宽带的区别
带宽是量词,指的是网速的大小,比如1Mbps的意思是一兆比特每秒,这个数值就是指带宽。
宽带是名词,说明网络的传输速率速很高 。宽带的标准各不相同,最初认为128kbps以上带宽的就是宽带,而以下的就是窄带。
宽带是一种业务,带宽是传输速度

2.1.4 因特网提供的运输服务

至此,我们已经考虑了计算机网络能够提供的通用运输服务。现在我们要更为具体考察由因特网提供的运输服务类型。因特网(更一般的是TCP/IP网络)为应用程序提两个运输层协议,即UDP和TCP)当你(作为一个软件开发者)为因特网创建一个新应用时,首先要做出的决定是,(选择UDP还是选择TCP)每个协议为调用它们的应用程提供了不同的服务集合。图2-4显示了某些所选的应用程序的服务要求。
在这里插入图片描述

(1)TCP服务

面向连接的服务
面向连接的服务:在应用层数据报文开始流动之前,TCP让客户和服务器互相交换运输层控制信息。这个所谓的握手过程提醒客户和服务器,让它们为大量分组的到来做好准备。在握手阶段后,一个TCP连接(TCPconnection)就在两个进程的套接字之间建立了。这条连接是**全双工**的,即连接双方的进程可以在此连接上同时进行报文收发。当应用程序结束报文发送时,必须拆除该连接。在第3章中我们将详细讨论面向连接的服务,并分析它是如何实现的。

可靠的数据传送服务
通信进程能够依靠TCP,无差错、按适当顺序交付所有发送的数据。当应用程序的一端将字节流传进套接字时,它能够依靠TCP将相同的字节流交付给接收方的套接字,而没有字节的丢失和冗余。

TCP协议还具有拥塞控制机制
这种服务不一定能为通信进程带来直接好处,但能为因特网带来整体好处。当发送方和接收方之间的网络出现拥塞时,TCP的拥塞控制机制会抑制发送进程(客户或服务器)。如我们将在第3章中所见,TCP拥塞控制也试图限制每个TCP连接,使它们达到公平共享网络带宽的目的。

在这里插入图片描述
在这里插入图片描述

(2)UDP 服务

UDP是一种不提供不必要服务的轻量级运输协议,它仅提供最小服务UDP是无连接的,因此在两个进程通信前没有握手过程。UDP协议提供一种不可靠数据传送服务就是说,当进程将一个报文发送进UDP套接字时,UDP协议并不保证该报文将到达接进程。不仅如此,到达接收进程的报文也可能是乱序到达的。UDP没有包括拥塞控制机制,所以UDP的发送端可以用它选定的任何速率向其下(网络层)注入数据。(然而,值得注意的是实际端到端吞吐量可能小于该速率,这可是因为中间链路的带宽受限或因为拥塞而造成的。)

(3)因特网运输协议所不提供的服务

总之,今天的因特网通常能够为时间敏感应用提供满意服务,但它不能提供任何定时或带宽保证
在这里插入图片描述
因特网电话应用的发者通常愿意将该应用运行在UDP上,从而设法避开TCP的拥塞控制机制和分组开。但因为许多防火墙被配置成阻挡(大多数类型的)UDP流量,所以因特网电话应用通设计成如果 UDP通信失败就使用TCP 作为备份

2.1.5 应用层协议

应用层的一部分。
我们刚刚学习了通过把报文发送进套接字实现网络进程间的相互通信。但是如何构造这些报文?在这些报文中的各个字段的含义是什么?进程何时发送这些报文?这些问题将我们带进应用层协议的范围。应用层协议(application-layer protocol)定义了运行在不同端系统上的应用程序进程如何相互传递报文
特别是应用层协议定义了:

  1. 交换的报文类型,例如请求报文和响应报文。
  2. 各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的。
  3. 字段的语义,即这些字段中的信息的含义。
  4. 确定一个进程何时以及如何发送报文,对报文进行响应的规则。

有些应用层协议是由RFC文档定义的,因此它们位于公共域中。例如,Web的应用层协议HTTP(超文本传输协议[RFC2616])就作为一个RFC可供使用。如果浏览器开发者遵从HTTPRFC规则,所开发出的浏览器就能访问任何遵从该文档标准的Web服务器并获取相应Web页面。还有很多别的应用层协议是专用的,有意不为公共域使用。例如,Skype 使用了专用的应用层协议

2.1.6 本书涉及的5种网络应用

每天都有新的公共域或者专用域因特网应用被开发出来。我们不愿像百科全书一样涉及大量的因特网应用,而是选择其中几种重要而流行的应用加以关注。在本章中我们详细讨论5种重要的应用:
Web、文件传输、电子邮件、目录服务、流式视频和P2P。我们首先讨论Web应用,不仅因为它是极为流行的应用,而且因为它的应用层协议HTTP比较简单并且易于理解。我们接下来讨论电子邮件,这是因特网上第一个招人喜爱的应用程序。说电子邮件比Web更复杂,是因为它使用了多个而不是一个应用层协议。在电子邮件之后,我们学习DNS,它为因特网提供目录服务。大多数用户不直接与DNS打交道,而是通过其他的应用(包括Web、文件传输和电子邮件)间接使用它。DNS很好地说明了一种核心的网络功能(网络名字到网络地址的转换)是怎样在因特网的应用层实现的。然后我们讨论P2P文件共享应用,通过讨论包括经内容分发网分发存储的视频在内的按需流式视频,结束应用层的学习。

2.2 Web和HTTP

2.2.1HTTP概况

Web的应用层协议是超文本传输协议)(HyperTextTransfer Protocol,HTTP),它是 Web的核心。HTTP由两个程序实现:一个客户程序和一个服务器程序。客户程序和服务器程序运行在不同的端系统中,通过交换HTTP报文进行会话。HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式。在详细解释 HTTP之前,应当回顾某些Web 术语——

Web 页面(Web page)(也叫文档)是由对象组成的。一个对象(object)只是一个文件,诸如一个 HTML 文件、一个JPEG图形、一个 Java 小程序或一个视频片段这样的文件,且它们可通过一个 URL地址寻址。多数Web页面含有一个HTML基本文件(base HTM6le)以及几个引用对象。例如,如果一个Web页面包含HTML文本和5个JPEG图形,那么这个 Web页面有6个对象:一个HTML基本文件加5个图形。HTML基本文件通过对象的 URL地址引用页面中的其他对象。
每个URL地址由两部分组成:存放对象的服务器主机名和对象的路径名。例如,URL地址 http://www.someSchool. edu/someDepartment/picture. gif,其中的(www. someSchool. edu 就是主机名,)(someDepartment/ picture. gif 就是路径名。因为Web 浏览器(Web browser)(例如Interet Explorer 和Firefox)实现了HTTP 的客户端,所以在 Web 环境中我们经常交替使用“浏览器”和“客户”这两个术语。Web服务器(Web server)实现了 HTTP 的服务器端,它用于存储 Web 对象,每个对象由 URL地址。流行的 Web 服务器有 Apache 和 Microsoft Intermet Information Server(微软互联网信息服务器)。
HTTP 定义了 Web客户向 Web服务器请求 web页面的方式,以及服务器向客户传送 web页面的方式。我们稍后详细讨论客户和服务器的交互过程,而其基本思想在图2-6中进行了图示。当用户请求一个Web页面(如点击一个超链接)时,浏览器向服务器发出对该页面中所包含对象的HTTP请求报文,服务器接收到请求并用包含这些对象的HTTP响应报文进行响应。
在这里插入图片描述
HTTP使用TCP作为它的支撑运输协议,而不是在UDP上运行。HTTP客户首先发起一个与服务器的 TCP 连接。一旦连接建立,该浏览器和服务器进程就可以通过套接字接口访问TCP。如同在2.1节中描述的那样,客户端的套接字接口是客户进程与 TCP连接之间的门,在服务器端的套接字接口则是服务器进程与TCP连接之间的门。
客户向它的套接字接口发送HTTP请求报文并从它的套接字接口接收 HTTP 响应报文,类似地,服务器从它的套接子接口接收 HTTP 请求报文和向它的套接字接口发送 HTTP 响应报文。一旦客户向它的套接字接口发送了一个请求报文,该报文就脱离了客户控制并进人TCP的控制。2.1节讲过,TCP为HTTP提供可靠数据传输服务。这意味着,一个客户进程发出的每个HTTP请求报文最终能完整地到达服务器;类似地,服务器进程发出的每个HTTP响应报文最终能完整地到达客户。这里我们看到了分层体系结构最大的优点,即HTTP协议不用担心数据丢失,也不关注TCP从网络的数据丢失和乱序故障中恢复的细节。那是TCP以及协议栈较低层协议的工作。


无状态协议
注意到下列现象很重要:服务器向客户发送被请求的文件,而不存储任何关于该客户的状态信息假如某个特定的客户在短短的几秒内两次请求同一个对象,服务器并不会因为刚刚为该客户提供了该对象就不再做出反应,而是重新发送该对象,就像服务器已经完全忘记不久之前所做过的事一样。因为HTTP服务器并不保存关于客户的任何信息,所以我们说 HTTP是一个无状态协议(statelessprotocol)

2.2.2非持续连接和持续连接

2.2.3HTTP 报文格式

2.2.4 用户与服务器的交互:cookie

2.2.5 Web 缓存

2.2.6 条件GET方法

2.3 因特网中的电子邮件

2.3.1 SMTP

2.3.2 与 HTTP 的对比

2.3.3 邮件报文格式

2.3.4 邮件访问协议

2.4 DNS:因特网的目录服务

2.4.1 DNS提供的服务…

2.4.2 DNS 工作机理概述

2.4.3 DNS 记录和报文

2.5 P2P文件分发

2.6 视频流和内容分发网

2.6.1 因特网视频

2.6.2 HTTP 流和DASH

2.6.3 内容分发网

2.7 套接字编程:生成网络应用

2.7.1 UDP套接字编程

2.7.2 TCP 套接宇编程

2.8 小结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/589701.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

dns服务器是什么,dns服务器工具如何选?

“http”“.com”这些我们都不陌生,这就是我们平时所输入的网址的前后缀,其实他们都是某台服务器的主机名依靠DNS服务器转化的。有时我们会遇到网络访问慢或者网址打不开的情况,一般都是网速问题。但如果只有你访问慢,而其他人正常…

图像处理1,灰度,data,for循环批处理图片,图片属性查看,图片单通道查看,椒盐噪声的生成,滤波处理,图像分割

图像处理1 灰度处理data库的使用for循环批处理图像对图像属性的查看图片类型图片尺寸图片宽度图像高度通道数总像素个数最大像素值最小像素值,像素平均值图像点像素值 for循环分别显示图像rgb通道椒盐噪声的生成中值滤波处理高斯模糊处理图像切割 灰度处理 from sk…

JavaScript百炼成仙自学笔记——2

一、循环遍历&#xff1a; 方式一 for(var i0;i<10;i){console.log(i); }方式二 var i 0; while(i < 100){console.log(i);i; }细看代码就是 先定义变量i&#xff0c;再执行{}中的代码&#xff0c;最后改循环变量的值 二、遍历 什么事遍历&#xff1f; 什么时候会用…

【系统架构师】-选择题(十)

1、某计算机系统页面大小为2K&#xff0c;进程P1的页面变换表如下图所示&#xff0c;若P1要访问数据的逻辑地址为十六进制1B1AH&#xff0c;那么该逻辑地址经过变换后&#xff0c;其对应的物理地址应为十六进制 &#xff08;231AH&#xff09; 。 四位换一位 逻辑地址1B1AH对应…

一文理解前端如何调用后端(java)方法

阅读完文章大约需要3~5分钟 文章目录 一、什么是后端方法路径&#xff1f;二、ajax、axios调用后端方法总结 一、什么是后端方法路径&#xff1f; 这里针对的是 java 后端项目中在 controller 文件夹中的类文件&#xff0c;这类文件的后缀一般都会带有 controller&#xff0c…

241 基于matlab的Dijkstra算法进行路径规划

基于matlab的Dijkstra算法进行路径规划。可根据实际情况输入障碍物和起止点坐标信息&#xff1b; 输出避碰最短路径&#xff1b; 能够利用切线图算法对障碍物区域进行环境建模&#xff0c;设置障碍物的位置和区域。利用Dijkstra算法进行路径规划。程序已调通&#xff0c;可直接…

c3 笔记6 认识css样式表

<link>与import应该如何选择?事实上&#xff0c;使用link与import链接外部样式文件的效果看起来是一样的&#xff0c;区别在于<link>是HTML标记而import属于CSS语法。<link>标记有rel、type与href属性&#xff0c;可以指定CSS样式表的名称&#xff0c;这样就…

【DevOps】发布自建镜像到Harbor镜像仓库

本博文介绍了开源的本地部署Docker镜像仓库Harbor&#xff0c; 并讲解怎么样在ubuntu20.04上安装配置Harbor&#xff0c;最后用一个Web应用发布成镜像&#xff0c;推送到镜像仓库的例子结尾。学习本博文并按照步骤进行操作&#xff0c;你将掌握搭建本地镜像仓库&#xff0c;并将…

香港立法會議員容海恩女士確定出席“邊緣智能2024 - AI開發者峰會”

隨著AI技術的飛速發展&#xff0c;全球正步入邊緣計算智能化與分布式AI深度融合的新紀元&#xff0c;共同演繹著分布式智能創新應用的壯麗篇章。在這一背景下&#xff0c;邊緣智能&#xff0c;作為融合邊緣計算和智能技術的新興領域&#xff0c;正逐漸成為推動AI發展的關鍵力量…

macOS sonoma 14.4.1编译JDK 12

macOS sonoma 14.4.1编译JDK 12 环境参考文档开始简述问题心路历程着手解决最终解决(前面有点啰嗦了&#xff0c;可以直接看这里) 记录一次靠自己看代码解决问题的经历(总之就是非常开心)。 首先&#xff0c;先diss一下bing&#xff0c;我差一点就放弃了。 环境 macOS sonom…

JAVA面试题---WEB部分

网络通讯 TCP与UDP TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、 可靠的、 基于 IP 的传输层协议。 UDP 是 User Datagram Protocol 的简称&#xff0c;中文名是用户数据报协议&#xff0c;是 OSI 参考模 型中的传输层协议&#xff0c;它是…

【Web世界探险家】CSS美学(一)

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…

Django整合多种认证方式

承接上一篇&#xff1a;Django知识点总结-CSDN博客 目录 25.使用 Django REST framework实现用户认证和授权 26.通过djangorestframework-simplejwt使用JWT(JSON Web Token) 27.使用django-auth-ldap进行用户认证 28. 使用django-cas-ng实现集中认证及实现单点登录 29. …

智能家居|基于SprinBoot+vue的智能家居系统(源码+数据库+文档)

智能家居目录 基于SprinBootvue的智能家居系统 一、前言 二、系统设计 三、系统功能设计 1管理员&#xff1a;个人中心管理功能的详细实现 2管理员&#xff1a;用户信息管理功能的详细实现 3管理员&#xff1a;家具管理功能的详细实现 4管理员&#xff1a;任务管理功能…

2-手工sql注入(进阶篇) sqlilabs靶场1-4题

1. 阅读&#xff0c;学习本章前&#xff0c;可以先去看看基础篇&#xff1a;1-手工sql注入(基础篇)-CSDN博客 2. 本章通过对sqlilabs靶场的实战&#xff0c;关于sqlilabs靶场的搭建&#xff1a;Linux搭建靶场-CSDN博客 3. 本章会使用到sqlmap&#xff0c;关于sqlmap的命令&…

34.Docker基本操作

镜像相关的命令 镜像名称分为两部分组成&#xff1a;[repository]:[tag],tag就是镜像的版本。如果tag没有指定默认就是latest,表示最新版本的镜像。 查看docker命令的帮助信息 docker --help 具体某条命令的帮助信息 docker images --help 案例一&#xff1a;从DockerHub中…

某米社区请求data类型multipart_form-data分析

随笔记录 之前未曾遇到请求的Content-Type:multipart/form-data; boundary=----WebKitFormBoundary9Fxpi3Dvlnhm3MKq,今天就简单是根据目标网站进行分析下,目标站点是:aHR0cHM6Ly93ZWIudmlwLm1pdWkuY29tL3BhZ2UvaW5mby9taW8vbWlvL3BjU2VhcmNoP2Zyb21QYXRobmFtZT1taW9Cb2FyZ…

使用STM32F103C8T6与蓝牙模块HC-05连接实现手机蓝牙控制LED灯

导言: 在现代智能家居系统中,远程控制设备变得越来越普遍和重要。本文将介绍如何利用STM32F103C8T6单片机和蓝牙模块HC-05实现远程控制LED灯的功能。通过这个简单的项目,可以学会如何将嵌入式系统与蓝牙通信技术相结合,实现远程控制的应用。 目录 导言: 准备工作: 硬…

gitlab设置保护分支

gitlab设置保护分支方法 进入代码仓库首页&#xff0c;找到settings下的repository并点击进入 找到Protected Branches 下的Exoand按钮&#xff0c;并点击展开 可以看到已经存在默认的保护分支&#xff0c;通常是master/main分支&#xff0c;也可以添加新的保护分支 新建保护分…

Android Studio的笔记--布局文件

关于Layout布局文件的使用 LinearLayoutRelativeLayout之前文章的内容一些常见性质在android.graphics.Color中定义了12种常见的颜色常数线性布局LinearLayout 一些常见使用文本框TextView设置文本内容编辑框EditText获取文本内容按钮Button控件使用其他按钮修改图标及名称添加…