资讯专栏INFORMATION COLUMN

浅谈http协议(三):HTTP 报文及其结构

CatalpaFlat / 1719人阅读

摘要:请求行请求方法空格统一资源标识符空格版本请求头字段名冒号值空行回车符换行符请求体由用户自定义添加,如的等请求首部实例谷歌浏览器面板响应报文结构响应报文结构与请求报文结构唯一的区别在于第一行中用状态信息代替了请求信息。

很多开发者天天跟http打交道,却不知道http报文长什么样子,结构是怎么样的,是时候普及一下了。用于 HTTP 协议交互的信息被称为 HTTP 报文,请求端(客户端)的 HTTP 报文叫做请求报文;响应端(服务器端)的叫做响应报文,HTTP 报文本身是由多行数据构成的字符串文本

HTTP 请求报文结构:
HTTP 报文大致可分为请求行、请求头、空行、请求主体四部分。也有人将报文分为请求首部(请求行+请求头)、空行、请求主体。通常,前几部分是必有的,最后的请求体不是必有的,每个部分结尾都用空行来作为结束标志。

请求行:请求方法(Method) + 空格 + 统一资源标识符(URI) + 空格 + HTTP版本 + CR LF ;

请求头:字段名 + 冒号 + 值 + CR LF ;

空行: 回车符(CR)+ 换行符(LF) ;

请求体: 由用户自定义添加,如post的body等;

请求首部实例(谷歌浏览器Network面板):

HTTP 响应报文结构:
响应报文结构与请求报文结构唯一的区别在于第一行中用状态信息代替了请求信息。状态行(status line)通过提供一个状态码来说明所请求的资源情况。

状态行:HTTP版本 + 空格 + 状态码 + 空格 + 状态码描述 + CR LF ;

响应头:字段名 + 冒号 + 值 + CR LF ;

空行: 回车符(CR)+ 换行符(LF) ;

响应体: 由用户自定义添加,如post的body等;

响应首部实例(谷歌浏览器Network面板):

响应状态码:
状态代码由服务器发出,以响应客户端对服务器的请求。
1xx(信息):收到请求,继续处理
2xx(成功):请求已成功接收,理解和接受
3xx(重定向):需要采取进一步措施才能完成请求
4xx(客户端错误):请求包含错误的语法或无法满足
5xx(服务器错误):服务器无法满足明显有效的请求
状态码详情请查阅:https://en.wikipedia.org/wiki...

本文到此应该结束了,但是程序员本该严谨治学,根据《图解Http》一书,http请求报文首部中的字段还可以细分为通用首部字段、实体首部字段、请求首部字段,同样,http响应报文首部中的字段还可以细分为通用首部字段、实体首部字段、响应首部字段

谷歌浏览器的Newwork面板只会把通用首部字段分出来,剩下的字段按请求头字段和响应头字段分成两类,不再做细分

附一张字段分类详情图
看不清楚的可以点这里:https://www.processon.com/vie...

<完>

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105726.html

相关文章

  • 浅谈http协议):HTTP 报文及其结构

    摘要:请求行请求方法空格统一资源标识符空格版本请求头字段名冒号值空行回车符换行符请求体由用户自定义添加,如的等请求首部实例谷歌浏览器面板响应报文结构响应报文结构与请求报文结构唯一的区别在于第一行中用状态信息代替了请求信息。 很多开发者天天跟http打交道,却不知道http报文长什么样子,结构是怎么样的,是时候普及一下了。用于 HTTP 协议交互的信息被称为 HTTP 报文,请求端(客户端)的...

    hyuan 评论0 收藏0
  • 浅谈http协议):HTTP 报文及其结构

    摘要:请求行请求方法空格统一资源标识符空格版本请求头字段名冒号值空行回车符换行符请求体由用户自定义添加,如的等请求首部实例谷歌浏览器面板响应报文结构响应报文结构与请求报文结构唯一的区别在于第一行中用状态信息代替了请求信息。 很多开发者天天跟http打交道,却不知道http报文长什么样子,结构是怎么样的,是时候普及一下了。用于 HTTP 协议交互的信息被称为 HTTP 报文,请求端(客户端)的...

    Elle 评论0 收藏0
  • 浅谈http

    摘要:的第一部分被称为方案,说明了访问资源所使用的协议类型。状态码位于响应的起始行中。是超文本传输协议,信息是明文传输,则是具有安全性的加密传输协议。协议是由协议构建的可进行加密传输身份认证的网络协议,要比协议安全。 HTTP概述 HTTP (HyperText Transfer Protocol,超文本传输协议)。 Web是建立在HTTP协议通信的。 HTTP 是个应用层协议。HTTP ...

    Jonathan Shieber 评论0 收藏0
  • 网络与安全

    摘要:面试网络了解及网络基础对端传输详解与攻防实战本文从属于笔者的信息安全实战中渗透测试实战系列文章。建议先阅读下的网络安全基础。然而,该攻击方式并不为大家所熟知,很多网站都有的安全漏洞。 面试 -- 网络 HTTP 现在面试门槛越来越高,很多开发者对于网络知识这块了解的不是很多,遇到这些面试题会手足无措。本篇文章知识主要集中在 HTTP 这块。文中知识来自 《图解 HTTP》与维基百科,若...

    Integ 评论0 收藏0
  • 浅谈Http协议(五):基于Tcp协议次握手和四次挥手

    摘要:很多人都知道协议是基于协议创造出来的采用文本方式传输非二进制传输的应用层协议,协议是传输层协议,主要解决数据如何在网络中传输,而应用层协议,主要解决如何包装和规范数据。你也可以自己定义应用层协议,只不过所有配套的东西都要自己重新造轮子。 从问题切入能帮我们更好地理解晦涩难懂的概念。很多人都知道http协议是基于Tcp协议创造出来的采用文本方式传输(非二进制传输)的应用层协议,TPC/I...

    weknow619 评论0 收藏0

发表评论

0条评论

CatalpaFlat

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<