Post

超文本协议与内外网划分

HTTP协议

HTTP协议是Hypertext Transfer Protocol(也称为超文本传输协议)的缩写,是用于从万维网(www:world wide web)服务器传输超文本到本地浏览器的传送协议,http协议工作于客户端-服务端(browser/sever)B/S架构上:浏览器作为http客户端通过ur!向http服务端即web服务器发送所有请求。web服务器根据接收到的请求后,向客户端发送响应信息。

HTTP/0.9

主要是纯文本内容的传输,使用在早期简单的网页浏览,通常是一些静态的文本页面。 主要特性: 仅支持 GET 请求,用于获取 HTML 文档。 没有请求头和响应头,通信极为简洁。 只能传输纯文本内容,不支持多媒体资源。

HTTP/1.0

随着互联网的发展,人们对网页的内容和交互性有了更高的要求,但对与有大量资源的网站,加载速度较慢。 主要特性: 引入了请求头和响应头,包含了一些基本的元信息,如文档类型、当期等。 支持多种请求方法,如 GET、POST 和 HEAD。 但每次请求都需要建立新的 TCP 连接,传输完成后立即断开,效率较低。

HTTP/1.1

为了解决 HTTP/1.0 连接频繁建立和断开的问题,提高网页加载速变和性能。 主要特性: 持久连接(Keep-Alive),允许在一个 TCP 连接上发送多个请求和响应,减少连接建立的开销。 管道化(Pipelining),客户端可以在一个连接上连续发送多个请求,但服务器的响应顺序必须与请求顺序一致 增加了更多的请求方法,如 PUT、DELETE、OPTIONS 等 引入缓存控制机制,通过头部字段控制缓存的使用。

HTTP2

随着 Web 应用的日益复杂,用户对网页加载速度和性能的要求越来越高,HTTP/1.1 在一些方面存在局限性。 主要特性: 二进制分帧,将 HTTP 消息分解为更小的帧进行传输,提高传输效率和灵活性。 多路复用,可在一个连接上同时处理多个请求和响应,无需按顺序发送,提高并发处理能力。 头部压缩,使用 HPACK 算法对头部进行压缩,减少传输的数据量。 服务器推送,服务器可以主动向客户端推送资源,提高页面加载速度

HTTP3

虽然HTTP/2在性能上有了很大的提升,但它仍然基于TCP协议,而 TCP 在一些情况下可能会出现连接建立时间长、丢包重传效率低等问题。 主要特性: 基于 QUIC 协议,一种基于 UDP 的传输协议,具有更快的连接建立时间和更好的拥塞控制机制。 0-RTT 连接建立,在某些情况下可以在第一次连接时就开始发送数据,减少延迟。 连接迁移,即使网络环境发生变化,连接也可以保持。 前向纠错,在数据传输过程中可以检测和纠正一些错误,减少重传次数,提高传输效率。

HTTP请求的方式

GET

​ 用途:用于请求指定的资源。这是最常见的请求方法,当你在浏览器中输入网址并访问时,通常会发送 GET 请求。 ​ 特点: ​ GET 请求可以被缓存,除非指定了特定的缓存控制头部。 ​ GET 请求的参数通常附加在 URL 中,这使得它们可以被轻松地分享和书签,但也可能会暴露敏感信息,并且有长度限制。 ​ GET 请求是安全的,即它不会对服务器上的资源进行修改。

POST

​ 用途:通常用于向服务器提交数据,以创建或更新资源。例如,在提交表单、上传文件等场景中经常使用。 ​ 特点: ​ POST 请求的数据通常放在请求体中,而不是 URL 中,因此可以传输更大量的数据,并且相对更安全,不容易暴露敏感信息。 ​ POST 请求一般不会被缓存。

PUT

​ 用途:用于更新服务器上的资源,PUT 请求通常会将整个资源进行替换。 ​ 特点:PUT 请求是幂等的,即多次发送相同的 PUT 请求应该产生相同的结果。

DELETE

​ 用途:用于删除服务器上的指定资源。 ​ 特点:DELETE 请求也是幂等的,多次删除同一个资源应该产生相同的结果,即资源被删除后再次删除不会产生错误。####

​ 用途:与 GET 请求类似,但只返回头部信息,不返回资源的主体内容 ​ 特点:可以用于检查资源的存在性、获取资源的元信息(如最后修改时间。内容长度等),而无需下载整个资源,从而节省带宽和时间。

OPTION

​ 用途::用于获取服务器支持的 HTTP 请求方法和其他选项 ​ 特点:客户端可以通过 OPTIONS 请求了解服务器对特定资源的访问权限和支持的操作

TRACE

​ 用途:用于诊断和调试,客户端可以发送 TRACE 请求来查看请求在网络中经过的路径 ​ 特点:通常在开发和测试环境中使用,以了解请求的处理过程。

HTTP之url

1
2
https://www.baidu.com:8080/web/579.html?replytocom=22#respond
协议://域名:端口/虚拟目录/文件名?参数#锚点

HTTP状态码

HTTP 协议状态码用于表示服务器对请求的处理结果。以下是常见的状态码分类介绍:

  1. 1xx 信息性状态码

    100 Continue:表示目前为止一切正常,客户端可以继续发送请求或者忽略这个响应。一般在客户端发送 POST 请求时,当请求体较大,服务器可能先返回这个状态码,表示可以继续发送请求体。

  2. 2xx 成功状态码

    200 OK:最常见的成功状态码,表示请求已成功,服务器已成功返回请求的数据。

    201 Created:表示请求已成功,并在服务器上创建了新的资源。通常在 POST 请求用于创建资源时返回。

    204 No Content:表示请求已成功处理后,表示资源已被更新或删除,但没有返回任何内容。通常用于 PUT 或 DELETE 请求成功

  3. 3xx 重定向状态码

    301 Moved Permanently:表示请求的资源已被永久移动到新的 URL ,客户端应使用新的URL进行后续的请求。

    302 Found:表示请求的资源临时被移动到另一个URL,客户端应继续使用原有URL进行请求,但可以根据响应中的Location头部字段进行重定向。

    304 Not Modified:表示资源未被修改,客户端可以使用缓存的版本。通常在客户端发送条件请求(如带有 If-Modified-Since 或 If- None-Match 头部)时返回。

  4. 4xx 客户端错误状态码

    400 Bad Request:表示客户端发送的请求有语法错误或无法被服务器理解。

    401 Unauthorized:表示请求需要用户认证,通常是因为客户端没有提供有效的身份验证凭据。

    403 Forbidden:表示服务器理解请求,但拒绝执行,通常是因为客户端没有足够的权限访问资源。

    404 Not Found:表示服务器找不到请求的资源。

    405 Method Not Allowed:表示请求的方法不被允许,例如使用了不支持的HTTP方法请求某个资源。

  5. 5xx 服务器错误状态码

    500 Internal Server Error:表示服务器在处理请求时发生内部错误,通常是服务器端的程序出现的异常。

    502 Bad Gateway:表示作为网关或代理的服务器在尝试执行请求时,从上游服务器几收到无效的响应。

    503 Service Unavailable:表示服务器暂时无法处理请求,通常是由于服务器过载或正在进行维护。

    504 Gateway Timeout:表示作为网关或代理的服务器在等待上游服务器响应时超时。

内外网划分

内网(局域网)通常是指一个组织或机构内部的网络,它的范围相对较小,一般局限于一个办公室、一栋楼或者一个企业园区内。

​ 想要打进内网就要找到与外网有连接的机器,然后横向移动,例如有些打印机的端口都是开放的。 ​ 社工信息收集也重要

外网(互联网)是指连接全球各地的网络,通常由互联网服务提供商(ISP)提供接入服务。外网的范围非常广泛,可以覆盖全球各个角落。

公网地址也称为全球唯一IP 地址,是由互联网服务提供商(ISP)分配给用户的,可以在全球互联网上被唯一识别的地址。

私网地址也称为本地!P 地址,是在一个组织或机构内部使用的!P地址,不能在全球互联网上被直接访问。

1
2
3
4
常见私网地址范围:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
This post is licensed under CC BY 4.0 by the author.