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

原文: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 更详细地介绍了它们。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容