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

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

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


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


13.png


前言


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


HTTP 消息


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


分类


HTTP 消息分为两类:


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


构成


12.png


典型的 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)


11.png


通用头字段


10.png


请求头字段


9.png


响应头字段


字段值


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


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


大小限制


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


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


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


总结


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


HTTP 头可以分为四类。


~ 本文完,感谢阅读!


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


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


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




相关文章
|
2月前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
69 3
|
5月前
|
缓存 前端开发 中间件
[go 面试] 前端请求到后端API的中间件流程解析
[go 面试] 前端请求到后端API的中间件流程解析
|
2月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
2月前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
42 3
|
2月前
|
缓存 前端开发 JavaScript
"面试通关秘籍:深度解析浏览器面试必考问题,从重绘回流到事件委托,让你一举拿下前端 Offer!"
【10月更文挑战第23天】在前端开发面试中,浏览器相关知识是必考内容。本文总结了四个常见问题:浏览器渲染机制、重绘与回流、性能优化及事件委托。通过具体示例和对比分析,帮助求职者更好地理解和准备面试。掌握这些知识点,有助于提升面试表现和实际工作能力。
70 1
|
3月前
|
前端开发 JavaScript 中间件
前端全栈之路Deno篇(四):Deno2.0如何快速创建http一个 restfulapi/静态文件托管应用及oak框架介绍
Deno 是由 Node.js 创始人 Ryan Dahl 开发的新一代 JavaScript 和 TypeScript 运行时,旨在解决 Node.js 的设计缺陷,具备更强的安全性和内置的 TypeScript 支持。本文介绍了如何使用 Deno 内置的 `Deno.serve` 快速创建 HTTP 服务,并详细讲解了 Oak 框架的安装和使用方法,包括中间件、路由和静态文件服务等功能。Deno 和 Oak 的结合使得创建 RESTful API 变得高效且简便,非常适合快速开发和部署现代 Web 应用程序。
133 2
|
3月前
|
存储 前端开发 NoSQL
拿下奇怪的前端报错(四):1比特丢失导致的音视频播放时长无限增长-浅析http分片传输核心和一个坑点
在一个使用MongoDB GridFS存储文件的项目中,音频和视频文件在大部分设备上播放时长显示为无限,而单独播放则正常。经调查发现,问题源于HTTP Range请求的处理不当,导致最后一个字节未被正确返回。通过调整请求参数,使JavaScript/MongoDB的操作范围与HTTP Range一致,最终解决了这一问题。此案例强调了对HTTP协议深入理解及跨系统集成时注意细节的重要性。
|
3月前
|
缓存 前端开发 安全
前端开发者必备:HTTP状态码含义与用途解析,常见错误码产生原因及解决策略
前端开发者必备:HTTP状态码含义与用途解析,常见错误码产生原因及解决策略
210 0
|
6月前
|
Web App开发 JavaScript 网络协议
|
5月前
|
前端开发 应用服务中间件 API
"揭秘!面试官必问:你是如何巧妙绕过跨域难题的?前端代理VS服务器端CORS,哪个才是你的秘密武器?"
【8月更文挑战第21天】在软件开发中,尤其前后端分离架构下,跨域资源共享(CORS)是常见的挑战。主要解决方案有两种:一是服务器端配置CORS策略,通过设置响应头控制跨域访问权限,无需改动前端代码,增强安全性;二是前端代理转发,如使用Nginx或Webpack DevServer在开发环境中转发请求绕过同源策略,简化开发流程但不适用于生产环境。生产环境下应采用服务器端CORS策略以确保安全稳定。
69 0