报文流

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所指定的资源

状态码

  1. 100~199:信息性状态码
  2. 200~299:成功状态码
  3. 300~399:重定向状态码
  4. 400~499: 客户端错误状态码
  5. 500~599:服务器错误状态码

《HTTP权威指南》3-HTTP报文的更多相关文章

  1. 【HTTP权威指南】第1 章 HTTP 概述

    1.1 HTTP--因特网的多媒体信使 ................................................................................ ...

  2. HTTP 权威指南 详解 ( 一、概述 )

    HTTP 权威指南 详解 ( 一.概述 ) 最近在解读 <http权威指南> 这本书.之前对于http 的理解仅限于 知道我需要向服务端发送一个 get or post 请求,然后等待服务 ...

  3. 《HTTP权威指南》读书笔记(一)

    1.因特网上有数千种不同的数据类型,HTTP仔细地给每种要通过Web传输的对象都搭上了名为MIME类型的数据格式标签.WEB服务器会为所有HTTP对象数据附加一个MIME类型.当Web浏览器从服务器中 ...

  4. 《http权威指南》读书笔记18

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  5. 《http权威指南》读书笔记14

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  6. 《http权威指南》读书笔记13

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  7. 《http权威指南》读书笔记12

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  8. 《http权威指南》读书笔记11

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  9. 《http权威指南》读书笔记7

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

随机推荐

  1. Verilog中关于wire使用的一些小知识

    1.Verilog中如果wire连接到常量,而常量没有说明他的位宽,那么将会默认为32位 如: input [:] x ; wire [:] a; assign a = + x; 上述代码在综合的时候 ...

  2. Appium+python自动化获取toast消息的方法

    转载地址:https://www.cnblogs.com/shangren/p/8191879.html 1. 首先执行这个命令:npm install -g cnpm --registry=http ...

  3. anaconda使用方法

    我是用的win10.想写爬虫,所以使用了  anaconda .总结一下使用的方法. 安装阶段跳过.: 再终端输入  jupyter notebook  然后就会在. 浏览器显示一个网页.其实这个也不 ...

  4. 微信小程序云端解决方案探索之路 - GITC 主题演讲

    转自:https://github.com/tencentyun/blog/issues/1 在刚结束的全球互联网技术大会(GITC)里面,我在前端专场给大家分享了「微信小程序云端解决方案探索之路」, ...

  5. webpack 打包问题

    Project is running at http://localhost:8080/webpack output is served from /dist/webpack: wait until ...

  6. (转)Java Web(一) Servlet详解!!

    https://www.cnblogs.com/whgk/p/6399262.html 这篇文章到上一篇,距离的有点遥远呀,隔了大概有两个月把,中间在家过了个年,哈哈~ 现在重新开始拾起,最近在看一本 ...

  7. js最实用string(字符串)类型的使用及截取与拼接详解

    var a = '世界上最远的距离不是天涯海角'; 一.通过字符获取位置或通过位置获取字符: //指定位置返回字符console.log(str.charAt(1));console.log(str[ ...

  8. Play中JSON序列化

    总的来说在scala体系下,对于习惯了java和c#这些常规开发的人来说,无论是akka-http还是play,就处理个json序列化与反序列化真他娘够费劲的. 根据经验,Json处理是比较简单的,但 ...

  9. C++ vector动态数组

    #include<vector>头文件 vector类称作向量类 百度百科的解释:https://baike.baidu.com/item/vector/3330482 我喜欢把知识点拿出 ...

  10. 六、pyqt5对话框——QInputDialog、QColorDialog、QFontDialog、QMessageBox、QFileDialog

    目录:  一.对话框综合示例 二.QDialog 三.QInputDialog 四.QMessageDialog 五.QFileDialog pyqt5的对话框有多种类型,比如输入对话框(QInput ...