前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【前端 · 面试 】HTTP 总结(二)—— HTTP 消息

【前端 · 面试 】HTTP 总结(二)—— HTTP 消息

原创
作者头像
编程三昧
修改2021-08-03 10:07:59
2660
修改2021-08-03 10:07:59
举报
文章被收录于专栏:编程三昧

最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正、交流。

争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火。

前端·面试·http总结.004
前端·面试·http总结.004

前言

在上一篇文章《HTTP 概述》中我们认识了 HTTP ,知道它是一个规范客户端请求和服务端响应的应用层协议,今天,我们来学习一下它里面的另一个重要概念——HTTP 消息。

HTTP 消息

HTTP 消息是服务器和客户端之间交换数据的方式。

分类

HTTP 消息分为两类:

  • 客户端请求消息(requests)—— 由客户端发送用来触发一个服务器上的动作。
  • 服务端响应消息(responses)—— 来自服务器的应答。

构成

HTTPMsgStructure2
HTTPMsgStructure2

典型的 HTTP 消息由以下四部分构成:

  • 起始行(start line) —— 一行起始行用于描述要执行的请求,或者是对应的状态,成功或失败。这个起始行总是单行的。
  • HTTP 头(HTTP headers)—— 表示在 HTTP 请求或响应中的用来传递附加信息的字段,修改所传递的消息(或者消息主体)的语义,或者使其更加精确。
  • 空行(empty line) —— 空行指示所有关于请求的元数据已经发送完毕。
  • 数据体(body)—— 一个可选的包含请求相关数据的正文 (比如HTML表单内容), 或者响应相关的文档。

请求消息和响应消息的构成大体相同。

HTTP 头字段

HTTP 头字段(HTTP header fields)是指在超文本传输协议(HTTP)的请求和响应消息中的消息头部分。

它们定义了一个超文本传输协议事务中的操作参数。

HTTP 头部字段可以自己根据需要定义,因此可能在 Web 服务器和浏览器上发现非标准的头字段。

格式

HTTP 头字段是在请求(request)或响应(response)行(一条消息的第一行内容)之后传输的。

协议头的字段特点是:

  • 以明文的字符串格式传输
  • 是以冒号分隔的键名与键值对
  • 以回车(CR)加换行(LF)符号序列结尾
  • 协议头部分的结尾以一个空白字段标识,也就是传输两个连续的 CR + LF。

分类

HTTP 头字段根据实际用途被分为以下 4 种类型:

  • 通用头字段(General Header Fields)
  • 请求头字段(Request Header Fields)
  • 响应头字段(Response Header Fields)
  • 实体头字段(Response Header Fields)
通用头字段
通用头字段
请求头字段
请求头字段
响应头字段
响应头字段

字段值

某些字段中可以包含注释内容(例如User-Agent、Server和Via字段中),这些注释内容可由应用程序忽略。

很多字段的值中可以包含带有权重的质量(quality,常被简称为Q)的键值对,指定的“重量”会在内容协商的过程中使用。

大小限制

标准中没有对每个协议头字段的名称和值的大小设置任何限制,也没有限制字段的个数。

然而,出于实际场景及安全性的考虑,大部分的服务器、客户端和代理软件都会实施一些限制。

例如,Apache 2.3服务器在默认情况下限制每个字段的大小不得超过8190字节,同时,单个请求中最多有100个头字段。

总结

HTTP 消息分为请求消息和响应消息,完整的消息由四部分组成。

HTTP 头可以分为四类。

~

~ 本文完,感谢阅读!

~

学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!

大家好,我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教!

你来,怀揣期望,我有墨香相迎! 你归,无论得失,唯以余韵相赠!

知识与技能并重,内力和外功兼修,理论和实践两手都要抓、两手都要硬!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • HTTP 消息
    • 分类
      • 构成
      • HTTP 头字段
        • 格式
          • 分类
            • 字段值
              • 大小限制
              • 总结
              相关产品与服务
              云服务器
              云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档