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

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

前言

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

HTTP 消息

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

分类

HTTP 消息分为两类:

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

构成

典型的 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 头可以分为四类。

~
本文完,感谢阅读!

~

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

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

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

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

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

  1. 前端面试官,我为什么讨厌你。

    近两年来,参加过的前端面试不下二十场了,吐槽一下.我所经历的,都是小公司,大公司的同学请无视. 招聘信息能否不要装逼?写一大堆你项目根本用不上的,来给谁看?我曾遇到上面写了一堆对js如何要求,对mv* ...

  2. 三年前端,面试思考(二)

    为什么还有(二) 没有想到上一篇 <三年前端,面试思考> 有这么多前端同学看到. 在评论区也有很多鼓励和质疑的声音,而且群里面交流的同学两天就达到了700人. 群里有同学问了很多问题,同时 ...

  3. 【前端面试】字节跳动2019校招面经 - 前端开发岗(二)

    [前端面试]字节跳动2019校招面经 - 前端开发岗(二) 因为之前的一篇篇幅有限,太长了看着也不舒服,所以还是另起一篇吧? 一. jQuery和Vue的区别 jQuery 轻量级Javascript ...

  4. java 重定向到某个页面并弹出消息_前端面试100问之浏览器从输入URL到页面展示发生了什么...

    点击蓝字,关注我们 『浏览器从输入URL到页面渲染发生了什么』作为一个经典题目,在前端面试中高频出现,很多大厂的面试都会从这个面试题出发,考察候选人对知识的掌握程度,这其中涉及到了网络.操作系统.We ...

  5. 【前端 · 面试 】JavaScript 之你不一定会的基础题(二)

    最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正.交流. 争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火. 前言 在上一篇文章[前端 · 面试 ...

  6. 前端面试查漏补缺--(二) 垃圾回收机制

    前言 本系列最开始是为了自己面试准备的.后来发现整理越来越多,差不多有十二万字符,最后决定还是分享出来给大家. 为了分享整理出来,花费了自己大量的时间,起码是只自己用的三倍时间.如果喜欢的话,欢迎收藏 ...

  7. 二十不惑的年纪,竟靠着这份前端面试指南,有幸拿到字节跳动实习offer,简直在起飞

    博主就读于电子科技大学,大三狗一枚!面试是个漫长的过程,从海投到收获电话面试,一面.二面.三面,一个步骤出错那么后面就宣告终结.同时,面试过程中你也可能会遇到一些面试官的刁难,甚至部分面试官会说些比较 ...

  8. 前端面试中浏览器相关问题(二):回流与重绘

    前端面试中浏览器相关问题(二):回流与重绘 文章目录 前端面试中浏览器相关问题(二):回流与重绘 浏览器的渲染过程 生成渲染树 回流 重绘 何时发生回流重绘 浏览器的优化机制 减少回流和重绘 最小化重 ...

  9. 校招社招必备核心前端面试问题与详细解答

    本文总结了前端老司机经常问题的一些问题并结合个人总结给出了比较详尽的答案.网易阿里腾讯校招社招必备知识点. 原理讲解参考:前端增长-重新定义大前端 在线课程:网易云课堂课程      思否课堂 官方博 ...

  10. 9月,水了几个大中厂前端面试的一些总结分享 | 掘金技术征文

    写在前面 工作吧,我觉得就像谈恋爱,不一定是找高富帅或者白富美,互相确认过眼神是对的人就可以~而面试的自信和对工资的要求,源于你过硬的基础和平时的思考.积累以及总结~ 8月底离职,其实是裸辞,当然大概 ...

最新文章

  1. 大战三回合:XGBoost、LightGBM和Catboost一决高低 | 程序员硬核算法评测
  2. 你还在使用 try-catch-finally 关闭资源?
  3. 一个简单程序的反编译
  4. PS插件cutterman快速切图
  5. Ubuntu搭建JDK环境
  6. Rsync:一个很实用的文件同步命令
  7. oracle的function的语法,Oracle function语法
  8. 平板电脑可以插u盘吗_电视TV盒子安装app的六个方法,u盘/电脑/手机都可以安装...
  9. cassandra可视化工具_一位数据科学家的私房工具清单
  10. java内存区_基于jvm java内存区域的介绍
  11. 写给人类的机器学习 翻译完成
  12. 友商侧目!realme首款升降全面屏手机realme X发布
  13. bzu-java(五)
  14. 完整的连接器设计手册_连接器材料使用大全
  15. django和php学哪个好,哪个更适合我的项目:Django、Plone、php还是rubyonrails
  16. 计算机专业考研复试经验【最终版本】(来自一位上岸又退学的二战dog)
  17. 深度解析《软文广告经典案例300》
  18. perl novel可变剪接识别(3)
  19. 分享一个动态sql编写工具
  20. h5页面调用百度地图获取当前位置并在地图上标注出来

热门文章

  1. ASP.NET MVC 3 - 部分vs显示模板与编辑器模板
  2. 如何在Java中将毫秒转换为“ X分钟,x秒”?
  3. 什么是Android上的“上下文”?
  4. 如何在Vim中进行不区分大小写的搜索
  5. win11亮度调节不见了怎么办 windows亮度调节不见了的解决方法
  6. STM32:GPIO配置说明
  7. 如何安装以及配置jdk8的环境变量(建议收藏)
  8. 3D呈现transform-style(CSS3)
  9. 创建一个简单的数据库
  10. msyql之查询某字段值重复的数据个数