26.0 Http协议
1. http协议简介
HTTP(Hypertext Transfer Protocol, 超文本传输协议):
是万维网(WWW: World Wide Web)中用于在服务器与客户端(通常是本地浏览器)之间传输超文本的协议.作为一个应用层的协议, HTTP以其简洁, 高效的特点, 在分布式超媒体信息系统中扮演着核心角色.
自1990年提出以来, HTTP经过多年的使用与发展, 已经得到了广泛的完善与扩展.HTTP协议运行于客户端-服务端架构之上, 其中浏览器作为HTTP客户端,
通过URL(统一资源定位符)向HTTP服务端, 也就是Web服务器, 发送各种请求.
Web服务器在接收到这些请求后, 会根据请求的内容和处理逻辑, 向客户端发送相应的响应信息.
这些信息通常包括HTML页面, 图片, 视频等多媒体内容, 以及用于控制页面行为的JavaScript脚本等.通过HTTP协议, 用户可以方便地从Web服务器上获取所需的信息, 并享受到丰富的网络资源和服务.
同时, HTTP协议也为Web应用提供了基础的通信机制, 使得各种Web技术(如HTML, CSS, JavaScript等)能够协同工作,
共同构建出功能强大的Web应用程序.
HTTP协议从最初到现在, 一共经历了五个主要版本, 分别是:
* 1. HTTP/0.9: 这是HTTP协议的最早版本, 于1991年发布.这个版本极其简单, 只支持GET请求方式, 并且没有请求头的概念, 服务端在响应之后立即关闭TCP连接.
* 2. HTTP/1.0: 在1996年5月发布, 这个版本在HTTP/0.9的基础上进行了大量的扩展.它新增了POST, DELETE, PUT, HEADER等请求方式, 并引入了请求头和响应头的概念, 使得HTTP协议能够传输更多的信息, 包括状态码, 权限, 缓存, 内容编码等.此外, 这个版本还扩充了传输内容格式, 使得图片, 音视频资源, 二进制等都可以进行传输.
* 3. HTTP/1.1: 这是目前最为主流的HTTP协议版本, 从1997年发布至今仍然是主流的http协议版本.HTTP/1.1在HTTP/1.0的基础上进行了多项改进, 引入了持久连接(persistent connection)和管道机制(pipelining),使得多个请求可以复用同一个TCP连接, 提高了传输效率.
* 4. HTTP/2.0: HTTP/2.0是HTTP协议的第二个主要版本, 它在HTTP/1.1的基础上进行了大幅度的优化.HTTP/2.0引入了二进制分帧层, 允许将不同的HTTP交换多路复用到同一个TCP连接上,同时支持服务器推送(server push)和头部压缩(header compression)等特性, 进一步提高了传输效率.
* 5. HTTP/3.0: HTTP/3.0是HTTP协议的第三个主要版本, 于2022年6月6日正式发布.这个版本最大的提升在于效率, 它替换了HTTP/2.0中的TCP协议为QUIC协议(基于UDP协议), 具有更低的延迟和更高的效率.综上所述, HTTP协议一共有五个版本, 分别是: HTTP/0.9, HTTP/1.0, HTTP/1.1, HTTP/2.0和HTTP/3.0.
每个版本都在前一个版本的基础上进行了改进和优化, 以适应互联网的发展需求.
2. http协议特性
HTTP协议特性:
* 1. 基于TCP/IP协议之上的应用层协议: HTTP协议是建立在TCP/IP协议之上的应用层协议.它利用TCP/IP协议提供的可靠传输服务, 确保HTTP请求和响应数据在客户端和服务器之间能够准确, 完整地传输.* 2. 基于请求-响应模式: HTTP协议采用请求-响应模式进行通信.这意味着通信的发起总是由客户端开始, 客户端向服务器发送HTTP请求, 服务器在接收到请求后,根据请求的内容生成相应的HTTP响应并返回给客户端.在整个通信过程中, 总是先由客户端发起请求, 服务器再进行响应.* 3. 无状态性: HTTP协议是无状态的(stateless).这意味着协议本身不对请求和响应之间的通信状态进行持久保存.每次HTTP请求都是独立的, 服务器不会记住之前客户端发送的请求或响应的信息.这种无状态性使得HTTP协议能够处理大量的并发请求, 提高了系统的可伸缩性和性能.然而, 这也给一些需要保持用户状态的应用带来了挑战.为了解决这个问题, HTTP协议引入了Cookie等技术来在客户端和服务器之间传递状态信息.* 4. 无连接性: HTTP协议具有无连接性(connectionless).这意味着每次HTTP请求和响应都需要通过TCP建立一个新的连接, 并在完成数据传输后断开连接.这种无连接性可以减少不必要的连接开销, 提高网络资源的利用率.然而, 对于需要频繁通信的应用来说, 频繁地建立和断开连接可能会带来额外的开销.为了解决这个问题, HTTP/1.1引入了持久连接(persistent connection)的概念,允许在一个TCP连接上发送多个HTTP请求和响应, 从而减少了建立和断开连接的次数.
3. 请求协议与响应协议
HTTP协议中的请求协议和响应协议是构成HTTP通信的两个基本组成部分.
这两个协议分别定义了客户端(如Web浏览器)如何向服务器发送请求, 以及服务器如何响应这些请求.* 1. 由浏览器(客户端)发送数据到服务器时需要遵循的请求协议(Request Protocol).
* 2. 服务器发送数据到浏览器时需要遵循的响应协议(Response Protocol).
3.1 报文格式
一个HTTP请求(也称为请求报文)通常包含以下几个部分:
* 1. 请求行(Request Line): 请求方法(HTTP Method): 如GET, POST, PUT, DELETE等, 用于指定请求的类型.请求URL(Request URL): 指定了请求的资源位置.HTTP协议版本(HTTP Version): 如HTTP/1.1或HTTP/2.0.
* 2. 请求头(Request Headers): 包含了一系列描述请求的元信息, 如请求来源(User-Agent), 请求内容类型(Content-Type), 内容长度(Content-Length)等.
* 3. 请求体(Request Body): 对于某些请求方法(如POST和PUT), 请求体包含了要发送到服务器的数据.数据格式通常可以是表单数据, JSON, XML等.一个HTTP响应(也称为响应报文)通常包含以下几个部分:
* 1. 状态行(Status Line): HTTP协议版本(HTTP Version): 如HTTP/1.1或HTTP/2.0.状态码(Status Code): 一个三位数的数字, 用于表示响应的状态. 常见的状态码包括200(OK), 404(Not Found)等.状态描述(Reason Phrase): 对状态码的文本描述, 如"OK"或"Not Found".
* 2. 响应头(Response Headers): 包含了一系列描述响应的元信息, 如内容类型(Content-Type), 内容长度(Content-Length), 响应时间(Date)等.
* 3. 响应体(Response Body): 包含了服务器返回给客户端的数据.数据格式取决于响应头中的Content-Type字段, 可以是HTML, 图片, JSON, XML等.这些报文在HTTP通信中起着至关重要的作用, 它们确保了客户端和服务器之间能够正确地进行数据交换和通信.
通过遵循HTTP协议的规定, 不同的客户端和服务器能够相互理解和处理对方的请求和响应, 从而实现各种Web应用的功能.
工作流程:
* 1. 客户端(如Web浏览器)根据用户的操作或程序的指令, 构建HTTP请求.
* 2. 客户端将HTTP请求发送到服务器.
* 3. 服务器接收到HTTP请求后, 解析请求并处理.
* 4. 服务器根据请求的内容和处理结果, 构建HTTP响应.
* 5. 服务器将HTTP响应发送回客户端.
* 6. 客户端接收到HTTP响应后, 解析响应并展示给用户或供程序使用.
* 7. 通过这种请求-响应模式, HTTP协议实现了客户端和服务器之间的通信和数据交换.
3.2 请求方法
HTTP请求方法(也称为HTTP动词或HTTP操作)定义了客户端如何与服务器进行交互.
以下是HTTP/1.1规范中定义的一些主要的HTTP请求方法:
* 1. GET: 用于请求指定的资源. 请求没有请求体.常见的用途包括: 请求HTML页面, 请求图片或其他类型的文件.通常GET请求是幂等的, 即多次执行相同的GET请求不会对资源产生副作用.
* 2. POST: 用于向指定资源提交数据, 请求通常包含请求体(例如表单数据, JSON等).常见的用途包括: 提交表单数据, 上传文件, 创建新的资源.POST请求通常不是幂等的, 即每次执行POST请求可能会产生不同的结果(例如, 多次提交相同的表单数据可能会创建多个资源).(通过设计可以使POST请求具有幂等性.)
* 3. PUT: 用于将请求的数据发送到指定的资源, 并替换该资源的当前表示形式(如果资源不存在, 则可能会创建它).PUT请求是幂等的, 即多次执行相同的PUT请求将产生相同的结果.
* 4. DELETE: 用于请求服务器删除指定的资源.DELETE请求也是幂等的.
* 5. HEAD: 与GET请求类似, 但服务器仅返回响应头, 而不返回实际的数据内容.通常用于检查资源的存在性, 类型, 大小等元信息.
* 6. OPTIONS: 用于获取目标资源所支持的通信选项.常用于CORS(跨源资源共享)预检请求.
* 7. TRACE: 用于沿着到目标资源的路径执行一个消息环回测试.通常用于诊断或测试.
* 8. CONNECT: 通常用于SSL加密隧道的建立.CONNECT请求由代理用于将TCP连接转变为安全的SSL连接.
* 9. PATCH(HTTP/1.1之后的扩展): 用于对资源应用部分修改.与PUT请求不同, PATCH请求只更新资源的部分内容, 而不是替换整个资源.在实际应用中, GET, POST, PUT和DELETE是最常用的HTTP请求方法.
其他方法(如HEAD, OPTIONS, TRACE和CONNECT)在特定场景下可能会很有用, 但不如前四个方法那么常见.
GET, POST, PUT和DELETE方法的详细解释:
* 1. GET 方法.数据位置: GET方法提交的数据会附加在URL的查询字符串(query string)中, 位于URL的'?'之后.例如: 如www.Book.com:8000/login/?name=kid&pwd=123456数据大小限制: 由于浏览器和服务器对URL长度都有限制(尽管这个限制可能因浏览器和服务器而异, 但通常都较短),所以GET方法提交的数据量有限.安全性: 由于GET请求的数据都暴露在URL中, 因此不适合传输敏感信息(如密码).此外, GET请求可以被缓存和书签化, 这也可能带来安全隐患.服务端获取数据方式: 服务端通过解析URL中的查询字符串来获取GET请求传递的数据.如果请求的资源存在并被成功获取, 服务器应该返回200 OK状态码, 并附带响应体(如HTML页面, JSON数据等).如果请求的资源不存在, 服务器应该返回404 Not Found状态码, 并可能附带一个描述性的错误消息作为响应体.如果服务器内部发生错误, 无法处理请求, 服务器会返回500 Internal Server Error状态码.* 2. POST 方法.数据位置: POST方法提交的数据放在HTTP请求的消息体中(request body).数据大小限制: POST方法提交的数据量没有GET方法那样的URL长度限制, 因此可以传输大量数据.但是, 仍然受到HTTP协议本身和服务器配置的限制.安全性: POST请求的数据在请求体中, 不会暴露在URL中, 因此比GET请求更适合传输敏感信息.此外, POST请求不会被浏览器缓存或书签化.服务端获取数据方式: 服务端通过解析请求体来获取POST请求传递的数据.这通常需要使用特定的内容类型(如application/x-www-form-urlencoded,multipart/form-data或application/json)来解析请求体中的数据.如果资源被成功创建或更新, 服务器应该返回201 Created状态码(当创建新资源时)或200 OK状态码(当更新现有资源时).响应体可能包含新创建或更新的资源的表示.* 3. PUT 方法.数据位置: 与POST类似, PUT请求的数据也通常放在HTTP请求的消息体中(request body).安全性: 与POST一样, PUT请求的数据不会暴露在URL中, 因此相对更安全.但是, PUT请求仍然可以被缓存, 因此同样需要小心处理敏感数据.服务端获取数据方式: 服务器应该根据请求URI(Uniform Resource Identifier)定位到特定的资源, 并使用请求体中的数据替换该资源的当前表示.如果请求成功, 服务器应该返回200(OK)或201(Created)状态码.* 4. DELETE 方法.数据位置: DELETE请求通常不包含请求体, 只需要通过URI指定要删除的资源即可.安全性: DELETE请求不会暴露敏感数据, 因为它不包含请求体. 但是, 它仍然需要谨慎处理, 因为错误的DELETE请求可能会导致数据丢失.服务端获取数据方式: 服务器应该根据请求URI定位到特定的资源, 并删除它.如果请求成功, 服务器应该返回200(OK)或204(No Content)状态码.如果资源不存在, 服务器可能会返回404(Not Found)状态码.
3.3 响应状态码
状态码(Status Code)在HTTP协议中扮演着非常重要的角色,
它们是服务器在响应客户端的请求时发送的简短代码, 用于告知客户端请求的结果.状态码由三位数字和一个与之关联的原因短语(Reason Phrase)组成.
虽然原因短语对于人类来说是可读的, 但实际的响应处理主要是基于三位数字的状态码.HTTP状态码的第一位数字定义了响应的类别, 主要有五种.
3.3.1 信息性状态码
信息性状态码: 接收的请求正在处理.
由于HTTP/1.0协议中没有定义任何1xx状态码, 因此HTTP/1.1版本的这类状态码变得可有可无.
消息 | 描述 |
---|---|
100 Continue | 服务器仅接收到部分请求, 但是一旦服务器并没有拒绝该请求, 客户端应该继续发送其余的请求. |
101 Switching Protocols | 服务器转换协议: 服务器将遵从客户的请求转换到另外一种协议. |
3.3.2 成功状态码
成功状态码: 请求已成功被服务器接收, 理解, 并接受.
最常见的状态码是200 OK, 表示一切正常.
消息 | 描述 |
---|---|
200 OK | 请求成功(其后是对GET和POST请求的应答文档.) |
201 Created | 请求被创建完成, 同时新的资源被创建. |
202 Accepted | 供处理的请求已被接受, 但是处理未完成. |
203 Non-authoritative Information | 文档已经正常地返回, 但一些应答头可能不正确, 因为使用的是文档的拷贝. |
204 No Content | 没有新文档. 浏览器应该继续显示原来的文档. 如果用户定期地刷新页面, 而Servlet可以确定用户文档足够新, 这个状态代码是很有用的. |
205 Reset Content | 没有新文档. 但浏览器应该重置它所显示的内容. 用来强制浏览器清除表单输入内容. |
206 Partial Content | 客户发送了一个带有Range头的GET请求, 服务器完成了它. |
3.3.3 重定向状态码
重定向状态码: 需要采取进一步的操作以完成请求.
例如, 301 Moved Permanently(永久重定向)表示请求的资源已被永久移动到由Location头部指定的URL.
消息 | 描述 |
---|---|
300 Multiple Choices | 多重选择.链接列表.用户可以选择某链接到达目的地.最多允许五个地址. |
301 Moved Permanently | 所请求的页面已经转移至新的url. |
302 Found | 所请求的页面已经临时转移至新的url. |
303 See Other | 所请求的页面可在别的url下被找到. |
304 Not Modified | 未按预期修改文档. 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档). 服务器告诉客户, 原来缓冲的文档还可以继续使用. |
305 Use Proxy | 客户请求的文档应该通过Location头所指明的代理服务器提取. |
306 Unused | 此代码被用于前一版本. 目前已不再使用, 但是代码依然被保留. |
307 Temporary Redirect | 被请求的页面已经临时移至新的url. |
3.3.4 客户端错误状态码
客户端错误状态码: 请求包含错误语法或无法完成请求.
例如, 404 Not Found (未找到)表示服务器上无法找到请求的资源.
消息 | 描述 |
---|---|
400 Bad Request | 服务器未能理解请求. |
401 Unauthorized | 被请求的页面需要用户名和密码. |
401.1 | 登录失败. |
401.2 | 服务器配置导致登录失败. |
401.3 | 由于ACL对资源的限制而未获得授权. |
401.4 | 筛选器授权失败. |
401.5 | ISAPI/CGI应用程序授权失败. |
401.7 | 访问被Web服务器上的URL授权策略拒绝. 这个错误代码为IIS 6.0所专用. |
402 Payment Required | 此代码尚无法使用. |
403 Forbidden | 对被请求页面的访问被禁止. |
403.1 | 执行访问被禁止. |
403.2 | 读访问被禁止. |
403.3 | 写访问被禁止. |
403.4 | 要求SSL. |
403.5 | 要求SSL 128. |
403.6 | IP地址被拒绝. |
403.7 | 要求客户端证书. |
403.8 | 站点访问被拒绝. |
403.9 | 用户数过多. |
403.10 | 配置无效. |
403.11 | 密码更改. |
403.12 | 拒绝访问映射表. |
403.13 | 客户端证书被吊销. |
403.14 | 拒绝目录列表. |
403.15 | 超出客户端访问许可. |
403.16 | 客户端证书不受信任或无效. |
403.17 | 客户端证书已过期或尚未生效. |
403.18 | 在当前的应用程序池中不能执行所请求的URL. 这个错误代码为IIS 6.0所专用. |
403.19 | 不能为这个应用程序池中的客户端执行CGI. 这个错误代码为IIS 6.0所专用. |
403.20 | Passport登录失败. 这个错误代码为IIS 6.0所专用. |
404 Not Found | 服务器无法找到被请求的页面. |
404.0 | (无)–没有找到文件或目录. |
404.1 | 无法在所请求的端口上访问Web站点. |
404.2 | Web服务扩展锁定策略阻止本请求. |
404.3 | MIME映射策略阻止本请求. |
405 Method Not Allowed | 请求中指定的方法不被允许. |
406 Not Acceptable | 服务器生成的响应无法被客户端所接受. |
407 Proxy Authentication Required | 用户必须首先使用代理服务器进行验证, 这样请求才会被处理. |
408 Request Timeout | 请求超出了服务器的等待时间. |
409 Conflict | 由于冲突,请求无法被完成. |
410 Gone | 被请求的页面不可用. |
411 Length Required | "Content-Length"未被定义. 如果无此内容,服务器不会接受请求. |
412 Precondition Failed | 请求中的前提条件被服务器评估为失败. |
413 Request Entity Too Large | 由于所请求的实体的太大, 服务器不会接受请求. |
414 Request-url Too Long | 由于url太长, 服务器不会接受请求. 当post请求被转换为带有很长的查询信息的get请求时, 就会发生这种情况. |
415 Unsupported Media Type | 由于媒介类型不被支持, 服务器不会接受请求. |
416 Requested Range Not Satisfiable | 服务器不能满足客户在请求中指定的Range头. |
417 Expectation Failed | 执行失败. |
423 | 锁定的错误. |
3.3.5 服务器错误状态码
服务器错误状态码: 服务器在处理请求时发生了错误.
例如, 500 Internal Server Error (内部服务器错误) 表示服务器遇到了一个未曾预料的情况, 导致其无法完成对请求的处理.
消息 | 描述 |
---|---|
500 Internal Server Error | 请求未完成.服务器遇到不可预知的情况. |
500.12 | 应用程序正忙于在Web服务器上重新启动. |
500.13 | Web服务器太忙. |
500.15 | 不允许直接请求Global.asa. |
500.16 | UNC授权凭据不正确.这个错误代码为IIS 6.0所专用. |
500.18 | URL授权存储不能打开.这个错误代码为IIS 6.0所专用. |
500.100 | 内部ASP错误. |
501 Not Implemented | 请求未完成.服务器不支持所请求的功能. |
502 Bad Gateway | 请求未完成.服务器从上游服务器收到一个无效的响应. |
502.1 | CGI应用程序超时. |
502.2 | CGI应用程序出错. |
503 Service Unavailable | 请求未完成.服务器临时过载或宕机. |
504 Gateway Timeout | 网关超时. |
505 HTTP Version Not Supported | 服务器不支持请求中指明的HTTP版本. |
4. URL统一资源定位符
URL(Uniform Resource Locator), 统一资源定位符, 是用于定位和访问互联网上资源的地址.
以下是关于URL的详细简介:
* 1. 定义与作用: URL是用于标识和定位互联网上的资源, 如网页, 文档, 图像, 视频等.它通过特定的语法规则, 将互联网上的资源地址统一编址, 使得用户可以方便地通过浏览器或其他工具访问这些资源.
* 2. 组成结构: URL通常包含以下几个部分,以'https://www.example.com:8080/path/to/resource?param1=value1¶m2=value2#section3'为例, 进行说明.协议(Protocol): 表示访问资源所使用的协议, 如'https'.主机名(Host): 表示资源所在的主机或服务器的域名或IP地址, 如'http://www.example.com'.端口(Port): 表示服务器监听的端口号, 如果省略则使用默认端口, 如'8080'.路径(Path): 表示资源在服务器上的路径或位置, 如'/path/to/resource'.查询参数(Query): 表示向服务器传递的参数, 通常以键值对的形式出现, 用'?'开始, 如'param1=value1¶m2=value2'.片段标识符(Fragment): 用于标识资源中的特定片段, 通常以'#'开始, 如'#section3'.
* 3. 特点与功能.URL是互联网上资源的唯一标识, 通过它可以准确地找到并访问所需资源.URL具有全球唯一性和可访问性, 使得互联网上的资源能够被全球范围内的用户所共享和访问.URL的组成结构清晰明了, 易于理解和使用, 同时也方便进行编程和自动化处理.
* 4. 应用场景.在Web开发中, URL常常用于指定网页, API等的地址, 使得开发者能够方便地构建和部署Web应用程序.在搜索引擎中, URL是搜索引擎爬虫获取和索引网页的重要依据, 对于网站的可见性和排名具有重要影响.在日常生活中, 我们通过各种设备(如手机, 电脑等)上的浏览器或其他应用程序访问URL, 从而获取和浏览互联网上的信息和服务.总之, URL作为互联网上资源的唯一标识和访问方式, 在现代社会中发挥着至关重要的作用.
通过了解URL的组成结构, 特点与功能以及应用场景等方面的知识, 我们可以更好地理解和使用URL, 从而更好地利用互联网资源和服务.
相关文章:
26.0 Http协议
1. http协议简介 HTTP(Hypertext Transfer Protocol, 超文本传输协议): 是万维网(WWW: World Wide Web)中用于在服务器与客户端(通常是本地浏览器)之间传输超文本的协议.作为一个应用层的协议, HTTP以其简洁, 高效的特点, 在分布式超媒体信息系统中扮演着核心角色. 自1990年提…...
IO流打印流
打印流 IO流打印流是Java中用来将数据打印到输出流的工具。打印流提供了方便的方法来格式化和输出数据,可以用于将数据输出到控制台、文件或网络连接。 分类:打印流一般是指:PrintStream,PrintWriter两个类 特点1:打印流只操作文件目的地,…...
Cohere reranker 一致的排序器
这本notebook展示了如何在检索器中使用 Cohere 的重排端点。这是在 ContextualCompressionRetriever 的想法基础上构建的。 %pip install --upgrade --quiet cohere %pip install --upgrade --quiet faiss# OR (depending on Python version)%pip install --upgrade --quiet…...
MySQL系列-语法说明以及基本操作(二)
1、MySQL数据表的约束 1.1、MySQL主键 “主键(PRIMARY KEY)”的完整称呼是“主键约束”。 MySQL 主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可以强制表的实体完整性。 …...
【STM32】步进电机及其驱动
设计和实现基于STM32微控制器的步进电机驱动系统是一个涉及硬件设计、固件编程和电机控制算法的复杂任务。以下是一个概要设计,包括一些基本的代码示例。 1. 硬件设计 1.1 微控制器选择 选择STM32系列微控制器,因为它提供了丰富的GPIO端口和足够的处理…...
Excel自定义排序和求和
概览 excel作为办公的常备工具,好记性不如烂笔头,在此梳理记录下,此篇文章主要是记录excel的自定义排序和求和 一. 自定义排序 举个例子 1. 填充自定义排序选项 实现步骤: 选定目标排序值;文件->选项->自定…...
若依RuoYi-Vue分离版—免登录直接访问
若依RuoYi-Vue分离版—免登录直接访问 如何不登录直接访问前端:后端:方法1:在SecurityConfig.java中设置httpSecurity配置匿名访问方法2:在对应的方法或类上面使用Anonymous注解。 如何不登录直接访问 官网有说明:如何不登录直接…...
java基础知识漏洞记录一
下面是我在阅读JavaGuide面试资料时遇到的不熟悉的知识点总结 JDK9中JRE与JDK新关系 从 JDK 9 开始,就不需要区分 JDK 和 JRE 的关系了,取而代之的是模块系统(JDK 被重新组织成 94 个模块) jlink 工具 (随 Java 9 一起发布的新命…...
html的网页制作代码分享
<!-- prj_8_2.html --> <!DOCTYPE html> <html lang "EN"><head><meta charset"utf-8" /><title>页面布局设计</title><style type "text/css">*{padding: 0px;margin:0px;}#header{back…...
【PIXEL】2024年 Pixel 解除 4G限制
首先在谷歌商店下载 Shizuku 和 pixel IMS 两个app 然后打开shizuku ,按照它的方法启动 推荐用adb 启动( 电脑连手机 ,使用Qtscrcpy最简洁) 一条指令解决 shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.ap…...
C#、C++、Java、Python 选择哪个好?
选择哪种编程语言取决于你的需求和偏好,以及你打算做什么类型的项目。我这里有一套编程入门教程,不仅包含了详细的视频 讲解,项目实战。如果你渴望学习编程,不妨点个关注,给个评论222,私信22,我…...
爬虫补环境,ES6 Class在环境模拟中的应用与优势
相比于使用传统的Object实现补环境框架结构,使用 ES6 的 Class 具有以下优势: 代码维护更方便:Class的语法更简洁直观,方便开发者阅读和维护。组织结构更清晰:Class提供了明确的层次结构,有助于代码的模块…...
linuxcentos将本地库JAR/arr批量导入到Nexus3.x
背景 我们现在要搞一个私服maven来管理对应的依赖包,需要上传包。用nexus只能单个文件搞,批量导入不行,而且还要单独配置groupID什么的。不多BB,上教程 建脚本 vi mavenimport.sh内容是这个 #!/bin/bash # copy and run this script to t…...
js之操作元素属性和定时器以及相关案例倒计时
这里写目录标题 一级目录二级目录三级目录 Web APIs01四、操作元素属性1.操作元素常用属性2.操作元素样式属性通过style属性操作css1.修改样式通过style属性引出2.如果属性有-连接符,需要转换为小驼峰命名法3.赋值的时候,需要的时候不要忘记加css单位 通…...
高考计算机专业 热门专业方向
人工智能(AI):随着技术进步,人工智能成为计算机技术的新方向,涵盖自动驾驶、智能机器人、语音识别等应用。该领域对人才的需求持续增长,是计算机专业的一个热门方向。数据科学与大数据分析:随大…...
《web应用技术》第十一次作业
1、验证过滤器进行权限验证的原理。 代码展示: Slf4j WebFilter(urlPatterns "/*") public class LoginCheckFilter implements Filter { Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) thro…...
Scala学习笔记11: 操作符
目录 第十一章 操作符1- 标识符2- 中置操作符3- 一元操作符4- 赋值操作符5- 操作符的优先级6- 结合性7- apply和update方法8- 提取器end 第十一章 操作符 在Scala中, 操作符是用来执行特定操作的符号或符号组合 ; Scala允许开发人员自定义操作符, 这些操作符可以是字母、数字…...
项目五串行通信系统 任务5-3温度信息上传
任务描述:DS18B20测量温度,单片机采集温度数据转换显示代码,并通过串行口发送到上位机显示。 底层文件: /********************************************* ds18b20底层函数:能完成一次温度数据读取 ***************************…...
前端 JS 经典:统一 Vite 中图片转换逻辑
在 Vue Vite 项目中有这样一段代码如下,引入了两个图片,一大一小。然后 console 出来引入结果。 import bigImg from "./assets/big.png"; import smallImg from "./assets/small.png";console.log(bigImg); console.log(smallImg…...
DOM-获取元素
获取元素的方法: 方法一:根据id获取元素document.getElementById <div id"time">2024-6-4</div> 在script标签中:注意getElementById括号里面必须要有引号,获得的是对象类型 var timer document.getEle…...
【安装笔记-20240612-Linux-内网穿透服务之cpolar极点云】
安装笔记-系列文章目录 安装笔记-20240612-Linux-内网穿透服务之 cpolar 极点云 文章目录 安装笔记-系列文章目录安装笔记-20240612-Linux-内网穿透服务之 cpolar 极点云 前言一、软件介绍名称:cpolar极点云主页官方介绍 二、安装步骤测试版本:openwrt-…...
Java 泛型与集合的深入解析:原理、应用与实践
泛型的基本原理 为什么需要泛型 在Java 5之前,Java的集合类只能存储Object类型的对象。这意味着,存储在集合中的对象在取出时需要进行类型转换,这不仅繁琐,而且容易出错。泛型通过在编译时进行类型检查,确保类型安全…...
Oracle 数据库的自动化工具:AWR 和 ASM
Oracle 数据库提供了一系列工具和技术,以提高数据库管理的效率和性能。其中,AWR和 ASM是两个关键组件。本文将详细介绍 AWR 和 ASM 的功能及其在数据库管理中的重要性。 AWR AWR 是 Oracle 数据库的一个核心部分,用于收集、处理和维护数据库…...
java技术专家面试指南50问【java学习+面试宝典】(五)
Dubbo需要 Web 容器吗? 不需要,如果硬要用 Web 容器,只会增加复杂性,也浪费资源。 一个字符串类型的值能存储最大容量是多少? 512M 什么是Kubectl? Kubectl是一个平台,您可以使用该平台将命…...
Elasticsearch之深入聚合查询
1、正排索引 1.1 正排索引(doc values )和倒排索引 概念:从广义来说,doc values 本质上是一个序列化的 列式存储 。列式存储 适用于聚合、排序、脚本等操作,所有的数字、地理坐标、日期、IP 和不分词( no…...
大模型:分本分割模型
目录 一、文本分割 二、BERT文本分割模型 三、部署模型 3.1 下载模型 3.2 安装依赖 3.3 部署模型 3.4 运行服务 四、测试模型 一、文本分割 文本分割是自然语言处理中的一项基础任务,目标是将连续的文本切分成有意义的片段,这些片段可以是句子、…...
数据预处理 #数据挖掘 #python
数据分析中的预处理步骤是数据分析流程中的重要环节,它的目的是清洗、转换和整理原始数据,以便后续的分析能够准确、有效。预处理通常包括以下几个关键步骤: 数据收集:确定数据来源,可能是数据库、文件、API或网络抓取…...
VS2022 使用C++访问 mariadb 数据库
首先,下载 MariaDB Connector/C++ 库 MariaDB Products & Tools Downloads | MariaDB 第二步,安装后 第三步,写代码 #include <iostream> #include <cstring> #include <memory> #include <windows.h>#include <mariadb/conncpp.hpp>…...
kotlin 语法糖
Use of “when” Expression Instead of “switch” fun getDayOfWeek(day: Int): String {return when (day) {1 -> "Monday"2 -> "Tuesday"3 -> "Wednesday"4 -> "Thursday"5 -> "Friday"6 -> "Sa…...
.NET MAUI Sqlite数据库操作(一)
一、安装 NuGet 包 安装 sqlite-net-pcl 安装 SQLitePCLRawEx.bundle_green 二、配置数据库(数据库文件名和路径) namespace TodoSQLite; public static class Constants {public const string DatabaseFilename "TodoSQLite.db3";//数据库…...
seo关键词挖掘工具/广州网站优化排名系统
原题目 第一题 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 来源:力扣(LeetCode) 链接&#…...
新网站该如何做网站优化呢/网页设计用什么软件
项目地址 github.com/LJWLgl/Comm… 概述 开发常用工具类总结,如果对你有用欢迎star~ 导入项目 <dependency><groupId>io.github.ljwlgl</groupId><artifactId>common-util</artifactId><version>2.0.1</version> </d…...
无忧企业网站管理系统/南宁seo优势
马力与扭矩的关系 经常有朋友在讨论一台车马力和扭矩的关系,但马力和扭矩究竟是一种什么关系呢? 接下来就让我们聊一聊他们之间的关系。在这片文章里,需要大家有一定的物理基础,如果是一点不了解物理,那么可能会读不懂…...
郑州做网站公司天强科技/搜索引擎的营销方法有哪些
点击上方“蓝色字”可关注我们!暴走时评:莫斯科Rambler News Service(RNS)3月1日报道,俄罗斯国家养老基金正在与俄罗斯铁路达成协议,使用区块链跟踪有资格享受折扣服务的旅客。作者:Helen Partz…...
贵州建设厅考试网站安全员/海外广告联盟平台推广
首先列一下,sellect、poll、epoll三者的区别selectselect最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组(在linux中一切事物皆文件,块设备,socket连接等。),当select()返回后&…...
邯郸论坛网站建设/网站推广郑州
零基础学黑客,搜索公众号:白帽子左一作者:admmin 因为BurpSuite需要在Java环境下运行,所以安装BurpSuite之前需要配置好Java环境。 我这里就直接给大家打包好java15版本的了, 已经是java15的可以不用安装 , 不是java15版本或者j…...