2. HTTP 报文
HTTP 报文是在 HTTP 应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。
HTTP 报文是最简单的格式化数据。每条报文都包含一条来自客户端的请求,或者一条来自服务端的响应。它们由三个部分组成:
- 对报文进行描述的起始行
- 包含属性的首部块。
- 可选的、包含数据的主体部分
所有的 HTTP 报文都可以分为两类:请求报文 和 响应报文。
请求报文的格式:
<method> <request - URL> <version>
<headers><entity-body>
字段 | 描述 |
method - 方法 | 客户端希望服务器对资源执行的动作 |
request - URL - 请求 URL | 命名了所请求资源,或者 URL 路径组件的完整 URL |
version - 版本 | 报文所使用的的 HTTP 版本,其格式看起来是这样的:HTTP/\<major>.\<minor> 其中主要版本号(major)和次要版本号(minor)都是整数 |
headers - 首部 | 可以有零个或多个首部,每个首部都包含一个名字,后面跟着一个冒号(:),然后是一个可选的空格,接着是一个值 |
entity-body - 实体的主体部分 | 实体的主体部分包含一个由任意数据组成的数据块,并不是所有的报文都包含实体的主体部分 |
method - 方法
方法 | 描述 | 是否包含主体 |
TRACE | 对可能经过代理服务器传送到服务器上去的报文进行追踪 | 否 |
OPTIONS | 决定可以在服务器上执行哪些方法 | 否 |
HEAD | 只从服务器获取文档的首部 | 否 |
GET | 从服务器获取一份文档 | 否 |
POST | 向服务器发送需要处理的数据 | 是 |
PUT | 将请求的主体部分存储在服务器上 | 是 |
DELETE | 从服务器上删除一份文档 | 否 |
响应报文的格式
<version> <status> <reson-phrase>
<headers><entity-body>
字段 | 描述 |
version - 版本 | 报文所使用的的 HTTP 版本,其格式看起来是这样的:HTTP/\<major>.\<minor> 其中主要版本号(major)和次要版本号(minor)都是整数 |
status - 状态码 | 这三位数字描述了请求过程中所发生的情况 |
reson-phrase - 原因短语 | 数字状态码的可读版本,包含行终止序列之前的所有文本 |
headers - 首部 | 可以有零个或多个首部,每个首部都包含一个名字,后面跟着一个冒号(:),然后是一个可选的空格,接着是一个值 |
entity-body - 实体的主体部分 | 实体的主体部分包含一个由任意数据组成的数据块,并不是所有的报文都包含实体的主体部分 |
status - 状态码分类
整体范围 | 已定义范围 | 分类 |
100 ~ 199 | 100 ~ 101 | 信息提示 |
200 ~ 299 | 200 ~ 206 | 成功 |
300 ~ 399 | 300 ~ 305 | 重定向 |
400 ~ 499 | 400 ~ 415 | 客户端错误 |
500 ~ 599 | 500 ~ 505 | 服务器错误 |
status - 常见状态码
状态码 | 原因短语 | 含义 |
200 | OK | 成功。请求的所有数据都在响应主体中 |
401 | Unanthorized(未授权) | 需要输入用户名和密码 |
404 | Not Found(未找到) |
服务器无法找到所请求 URL 对应的资源 |
2. HTTP 报文相关推荐
- 利用dom4j将实体类转换为对应的xml报文
利用dom4j生成xml报文 目标格式: <?xml version="1.0" encoding="GBK"?><Packet type=& ...
- java 报文长度计算_从TcpClient.GetStream()读取而不知道长度 - java
我正在研究基于TCP的通信协议.我所知 有很多方法可以确定何时结束阅读. 在消息末尾关闭连接 将消息的长度放在数据本身之前 使用分隔符:一些在正常数据中永远不会出现的值(或者总会以某种方式转义) 通常 ...
- mqtt session保持 订阅消息_如何使用 MQTT 报文实现发布订阅功能
MQTT 协议通过交换预定义的MQTT控制报文来通信.下面以 Connect 连接 MQTT 协议基于 TCP/IP 协议,MQTT Broker 和 Client 都有需要有 TCP/IP 地址. ...
- SIP协议的传输层原理报文解析(解读rfc3581)(待排版)
关于rfc3581/rport参数的阐述 一:简述 一般情况下,服务器在接收到request后,应答发向哪里呢?服务器在计算回应应答的算法是一种混合模式,具体说来是这样的: 1,IP:从哪里接收到的就 ...
- 报文如何截取时间_5种报文、8种邻居状态机详解OSPF工作原理
上一章节介绍了OSPF相比RIP具有无环路.路由收敛速度快.可扩展性好的特点.知识卡片 | 链路状态路由协议OSPF凭什么会取代RIP? 我们知道路由协议的最终目的是为了计算最优路由加入路由表来指导I ...
- dhcp报文_动态地址分配DHCP,IP地址管理方式及分配原则,一分钟了解下
一.DHCP简介 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用来为网络设备动态地分配 IP 地址等网络配置参数. DHCP 采用客户端/服务器 ...
- http协议进阶(三)http报文
一.报文流 http报文是在http应用程序之间发送的数据块(也可称为数据包).这些数据块以一些文本的元信息(meta-information)开头,描述了报文的内容及含义,后面跟着 可选的数据部分, ...
- h3c 3600 acl 配置 滤源IP是网关的ARP报文的ACL规则
h3c 3600 acl 配置 滤源IP是网关的ARP报文的ACL规则 悬赏分:100 - 解决时间:2009-3-8 14:30 星号之间是我在网上查到的华为交换机的配置方法: ********** ...
- 如何突破DNS报文的512字节限制
"DNS协议大家都应该很熟悉,最近有同学问到如何获得UDP承载的超过512字节的DNS报文,借此机会,我们一起了解下DNS协议与报文长度有关的一些细节." 本文将讨论的是DNS协议 ...
- 读书笔记:《图解HTTP》第三章 HTTP报文
原文地址 博客积累地址 HTTP报文的作用 HTTP报文时是HTTP进行请求和响应时用来交换信息的,可以理解它为搬东西的包裹,来搬运交换的信息 报文流 HTTP报文在HTTP应用程序(客户端.服务器. ...
最新文章
- hessiancpp编译和使用(C++版)
- PriorityBlockingQueue详解
- 美国科学院学报:如何在竞争激烈的环境下维持稳定的群体
- Unit Test测试框架中的测试的执行顺序
- SQL Server 2012 复制(发布订阅的研究)
- [转]你在修佛,还是在修魔
- [YTU]_2627 (职工工资统计)
- 显示SAP Spartacus每个page slot使用的Angular Component uid
- 成立出版社的条件_创始人亲述:法国鸿飞文化出版社的诞生故事和做书心得
- 【渝粤教育】 广东开放大学 21秋期末考试物业经营管理实务10123k2
- php处理base64数据,php基于base64解码数据与图片的转换
- IntelliJ IDEA版本:Ultimate、Community、EAP版本的区别
- 内推 | 字节跳动算法提前批
- 【报告分享】2019中国青年理想城报告(含城市青和力TOP100).pdf
- 同样是做冻品生意,哪类人更挣Q?
- IPD+CMMI企业产品开发系统性解决方案
- python六大数据类型的定义_python六大类标准数据类型和数据类型转换
- 十个最好的免费杀毒软件
- webview播放php音乐,android webview中的音乐的暂停与播放
- 计算机网络期末考点复习
热门文章
- webApp PHP项目打包供手机下载,免越狱免签名的苹果ios webAPP打包生成的网站教程(附iphone配置实用工具)...
- 水面反光如何拍摄_「摄影技巧全解」「水面篇」不一样的水面粼粼波光
- eplan 培训中心ppt_Eplan从入门到精通.doc
- 蒙特卡罗模拟/蒙特卡罗方法
- 芒果 mysql插件,NoSQL代表:MongoDB(芒果数据库)
- js获取当前路径的url
- Linux 的camera sensor 驱动代码分析:基于rv1108
- 教你如何使用数字组件,制作有灵魂的数据可视化大屏
- K3Cloud WebAPI 学习笔记:财务会计-总账-凭证
- Flask 框架学习1