美文网首页
一篇非常不错的介绍http基础的博客

一篇非常不错的介绍http基础的博客

作者: 打出了枫采 | 来源:发表于2022-04-23 09:26 被阅读0次

原文:http://www.steves-internet-guide.com/http-basics/

了解 HTTP 基础知识

HTTP 超文本传输协议,用于 Web 传输数据。

它是 Web 开发的关键协议,并且由于广泛使用,还用于在 IOT 应用程序中传输数据和命令。
http协议的第一个版本只有一个方法,即 GET,它将从服务器请求页面。

服务器的响应始终是 HTML 页面。- Wiki

想要了解 HTTP 协议开始时的简单程度,可以查看只有 1 页的原始规范。

从最初的0.9 版本开始,已经有多个 HTTP版本。

当前版本为 1.1,最后一次修订是在 2014 年。有关详细信息,请参阅Wiki

工作机理

与大多数 Internet 协议http一样,它是使用客户端服务器通信模型的基于命令和响应 文本的协议。


image.png

客户端发出请求,服务器响应。

HTTP 协议也是一种无状态协议,这意味着服务器不需要存储会话信息,并且每个请求彼此独立。- 请参阅此wiki
这表示:

  • 所有请求都来自客户端(您的浏览器)
  • 服务器响应请求。
  • 请求(命令)和响应是可读的文本。
  • 请求是相互独立的,服务器不需要跟踪请求。

请求和响应结构

请求和响应消息结构相同,如下图所示:

image.png

请求包括:

命令或请求+可选标头+可选正文内容
响应包括:

状态码+可选标题+可选正文内容

一个简单的CRLF(回车和换行)组合用于分隔部分,单个空行 ( CRLF ) 表示标题的结尾。

如果请求或响应包含消息正文,则在标头中指明

请求中是否存在消息正文由Content-LengthTransfer-Encoding标头字段表示。请求消息框架独立于方法语义,即使该方法没有定义消息体的任何用途。– RFC 7230第 3.3 节。

注意:消息正文后面没有 CRLF 请参阅RFC 7230第 3.5 节**

HTTP 请求

之前看到了一般的请求响应格式,下面将更详细地介绍请求消息。

起跑线是强制性的,其结构如下:

方法+资源路径+协议版本

例如,如果我们尝试访问 www.testsite5.com 上的网页 testpage.htm

请求的起始行是: GET /test.htm HTTP/1.1

  • GET是方法
  • /testpage.htm是资源的相对路径。
  • HTTP/1.1是我们使用的协议版本
注意:
  1. 相对路径不包括域名。
  2. Web 浏览器使用我们输入的 URL 来创建资源的相对 URI。
    注意: URL(统一资源定位器)用于网页。它是URI(统一资源指示符)的一个示例。

http包可以用解析工具如wireshark抓取或者chrome开发者工具 netrwork分析中可以查看

HTTP 与 URL

大多数人都熟悉在网络浏览器中输入网址。通常看起来像这样。


image.png

url 还可以包含通常被浏览器隐藏的端口,但您可以手动包含它,如下所示:

image.png

这告诉 Web 浏览器要定位的资源的地址以及用于检索该资源的协议(http)

http是将资源(网页、图像、视频等)从服务器传输到客户端的传输协议。

HTTP响应和响应代码

每个请求都有一个响应。响应包括

  • 状态码说明
  • 1 个或多个可选标题
  • 可选的消息体(消息体可能有多行二进制数据流)

响应状态代码分为 5 组,每组有一个含义和一个三位数代码。

  • 1xx – 信息
  • 2xx – 成功
  • 3xx - 多项选择
  • 4xx – 客户端错误
  • 5xx - 服务器错误

例如,成功的页面请求将返回200响应代码和不成功的400响应代码。

可以在此处找到完整列表及其含义

请求响应示例

当我们访问一个简单的网页(testpage.htm)时,我们将检查他的请求和响应

这是我在浏览器地址栏中输入的内容:


image.png

这是浏览器显示的响应:

image.png

这是幕后发生的http请求响应的屏幕截图。

image.png
请注意,请求标头是由浏览器自动插入的,响应标头也是由 Web 服务器插入的。

请求中没有正文内容。回复中的正文内容是一个网页,并显示在浏览器中,而不是由实时标题工具显示。

请求类型

到目前为止,我们还没有提到请求类型,但我们已经在示例中看到了 GET 请求类型。

GET 请求类型或方法用于从 Web 服务器请求资源。

GET 是最常用的请求类型,也是原始 HTTP 规范中唯一的请求类型。

请求类型、方法

HTTP 协议现在支持 8 种请求类型,在文档中也称为方法或动词,它们是:

  • GET - 从服务器请求资源
  • POST – 向服务器提交资源(例如文件上传)
  • PUT -As POST 但替换资源
  • DELETE - 从服务器中删除资源
  • HEAD - 作为 GET 但只返回标题而不是内容
  • OPTIONS - 获取资源的选项
  • PATCH - 对资源应用修改
  • TRACE - 执行消息环回

在当今的 Internet 上,GET(获取网页)和POST(提交 Web 表单)方法是最常用的方法。

其他方法用于处理 Web 和 IOT API,特别是 put、delete 和 head。

w3c有一个很好的基本概述,Mozila MDN 更详细地介绍了它们。

相关文章

网友评论

      本文标题:一篇非常不错的介绍http基础的博客

      本文链接:https://www.haomeiwen.com/subject/ongoertx.html