《HTTP权威指南》3-HTTP报文
报文流
HTTP报文是在HTTP应用程序之间发送的数据块,这些数据块以文本形式的元信息开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。
这些报文在客户端,服务器和代理之间流动。
报文的组成成分
HTTP报文是简单的格式化数据块,由三个 部分组成:
- 对报文进行描述的起始行(start line)
- 包含属性的首部(header)块
- 可选的,包含数据的主体(body)部分,可以包含文本或二进制数据,也可以为空

报文的语法
所有的HTTP报文都可以分为两类,请求报文和响应报文。
请求报文格式如下:
<method> <request-URL> <version>
<headers>
<entity-body>
- 方法:HTTP中定义了一组常用的请求方法,告知服务器要做什么事情
- 请求URL:命名了所请求资源
响应报文格式如下:
<version> <status> <reason-phrase>
<headers>
<entity-body>
- 状态码:描述请求过程中所发生的情况,告诉客户端,发生了什么事
- 原因短语: 数字状态码的可读版本
报文的其他组成详情:
- 版本号:为使用HTTP的应用程序提供一种线索,以便相互了解对法的能力和报文格式
- 首部:名/值对的列表
- 主体部分: HTTP要传输的内容
方法(method)
- GET:通常用于请求服务器发送某个资源
- HEAD: 通常用于请求服务器在响应中返回首部,不会返回实体的主体部分,这样可以了解资源情况,判断其是否村子,查看其是否被修改
- PUT:向服务器写入文档,让服务器用请求的主体部分来创建一个所请求的URL命名的新文档
- POST: 向服务器中输入数据,通常用它来支持HTML的表单
- TRACE: 客户端发起请求后,请求可能要穿过防火墙,代理,网关等,每个中间节点都有可能会修改原始的HTTP请求,TRACE允许客户端在最终将请求发送给服务器时,看看它变成了什么样子
- OPTIONS:询问服务器通常支持哪些方法
- DELETE:请求服务器删除请求URL所指定的资源
状态码
- 100~199:信息性状态码
- 200~299:成功状态码
- 300~399:重定向状态码
- 400~499: 客户端错误状态码
- 500~599:服务器错误状态码
《HTTP权威指南》3-HTTP报文的更多相关文章
- 【HTTP权威指南】第1 章 HTTP 概述
1.1 HTTP--因特网的多媒体信使 ................................................................................ ...
- HTTP 权威指南 详解 ( 一、概述 )
HTTP 权威指南 详解 ( 一.概述 ) 最近在解读 <http权威指南> 这本书.之前对于http 的理解仅限于 知道我需要向服务端发送一个 get or post 请求,然后等待服务 ...
- 《HTTP权威指南》读书笔记(一)
1.因特网上有数千种不同的数据类型,HTTP仔细地给每种要通过Web传输的对象都搭上了名为MIME类型的数据格式标签.WEB服务器会为所有HTTP对象数据附加一个MIME类型.当Web浏览器从服务器中 ...
- 《http权威指南》读书笔记18
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记14
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记13
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记12
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记11
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记7
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
随机推荐
- Verilog中关于wire使用的一些小知识
1.Verilog中如果wire连接到常量,而常量没有说明他的位宽,那么将会默认为32位 如: input [:] x ; wire [:] a; assign a = + x; 上述代码在综合的时候 ...
- Appium+python自动化获取toast消息的方法
转载地址:https://www.cnblogs.com/shangren/p/8191879.html 1. 首先执行这个命令:npm install -g cnpm --registry=http ...
- anaconda使用方法
我是用的win10.想写爬虫,所以使用了 anaconda .总结一下使用的方法. 安装阶段跳过.: 再终端输入 jupyter notebook 然后就会在. 浏览器显示一个网页.其实这个也不 ...
- 微信小程序云端解决方案探索之路 - GITC 主题演讲
转自:https://github.com/tencentyun/blog/issues/1 在刚结束的全球互联网技术大会(GITC)里面,我在前端专场给大家分享了「微信小程序云端解决方案探索之路」, ...
- webpack 打包问题
Project is running at http://localhost:8080/webpack output is served from /dist/webpack: wait until ...
- (转)Java Web(一) Servlet详解!!
https://www.cnblogs.com/whgk/p/6399262.html 这篇文章到上一篇,距离的有点遥远呀,隔了大概有两个月把,中间在家过了个年,哈哈~ 现在重新开始拾起,最近在看一本 ...
- js最实用string(字符串)类型的使用及截取与拼接详解
var a = '世界上最远的距离不是天涯海角'; 一.通过字符获取位置或通过位置获取字符: //指定位置返回字符console.log(str.charAt(1));console.log(str[ ...
- Play中JSON序列化
总的来说在scala体系下,对于习惯了java和c#这些常规开发的人来说,无论是akka-http还是play,就处理个json序列化与反序列化真他娘够费劲的. 根据经验,Json处理是比较简单的,但 ...
- C++ vector动态数组
#include<vector>头文件 vector类称作向量类 百度百科的解释:https://baike.baidu.com/item/vector/3330482 我喜欢把知识点拿出 ...
- 六、pyqt5对话框——QInputDialog、QColorDialog、QFontDialog、QMessageBox、QFileDialog
目录: 一.对话框综合示例 二.QDialog 三.QInputDialog 四.QMessageDialog 五.QFileDialog pyqt5的对话框有多种类型,比如输入对话框(QInput ...