HTTP报文

HTTP:互联网的信使

HTTP报文:信使用来搬东西的包裹

1.报文流

HTTP报文:HTTP应用程序之间发送的数据块

组成:元信息开头(文本形式,描述报文的内容和含义)+可选的数据部分。

2.报文的组成部分

三部分组成:

  • 起始行(描述报文)
  • 首部块(属性)
  • 主体部分(主体)

报文的语法:

两类:请求报文和响应报文

请求报文格式:

<method><request-URL><version>
<headers>
<entity-body>

响应报文格式:

<version><status><reason-phrase>
<headers>
<entity-body>
  • 方法 对资源执行的动作 如GET、POST等
  • 请求URL
  • 版本 HTTP版本,如HTTP/1.1
  • 状态码 status-code 描述请求过程中发生的情况
  • 原因短语
  • 首部
  • 实体的主体部分

起始行

请求行:说明要做些什么

响应行:说明发生了什么

方法:告诉服务器做什么事情

状态码:告诉客户端发生了什么

常见状态码:

200 OK 成功

404 Not Found 未找到

原因短语:文本形式的解释,如HTTP/1.0 200 OK,OK就是原因短语

版本号:HTTP/x.y 告知对方自己所遵循的协议版本

首部

起始行后面跟着0,1或多个HTTP首部字段

HTTP首部字段向请求和响应报文中添加一些附加信息

本质是键值对的列表

方法

安全方法

HTTP请求不会在服务器上产生结果,GET方法和HEAD方法就是安全方法

GET

用于请求服务器发送某个资源

HEAD

与GET方法类似,服务器在响应中只返回首部

PUT

向服务器写入文档(GET是从服务器读取文档)

POST

向服务器输入数据,用它来支持HTML表单

POST用于向服务器发送数据,PUT用于向服务器上的资源中存储数据

TRACE

允许客户端在最终将请求发送给服务器时,看看它变成什么样子

3.状态码

HTTP状态码被分成了五大类

3.1 100——199 信息性状态码

HTTP/1.1向协议中引入信息性状态码,这些状态码相对较新,由于复杂性和感知价值存在一些争议,而受到限制。

3.2 200——299 成功状态码

3.3 300——399 重定向状态码

重定向状态码要么告知客户端使用替代位置来访问他们所感兴趣的资源,要么就提供一个替代的响应而不是资源的内容。

304 Not Modified 若客户端发起GET请求,而最近资源未被修改的话

就应该用这个状态码来说明资源未被修改。带有这个状态码的响应不应该包含实体的主体部分。

3.4 400——499 客户端错误状态码

客户端发送一些服务端无法处理的东西,如格式错误的请求报文,不存在的URL



3.5 500——599 服务器错误状态码

客户端发送有效请求,服务器却出错。



首部

首部和方法配合工作,共同决定客户端和服务器能做什么事情。

在请求报文和响应报文中都可以用首部来提供信息。

首部可以分为5个类型:

  • 通用首部 客户端和服务器都可以使用的通用首部,提供一些通用功能

    Date:Sat, 13 Feb 2016 12:09:32 GMT
  • 请求首部 请求报文特有的,为服务器提供一些额外的信息

    Accept:image/webp,image/*,*/*;q=0.8
  • 响应首部
  • 实体首部 用于应对实体主体部分的首部

    Content-Type:text/plain; charset=utf-8
  • 拓展首部 非标准的首部,由应用程序开发者创建。

《HTTP权威指南》学习笔记——HTTP报文的更多相关文章

  1. HTTP权威指南-学习笔记

    目录 HTTP权威指南-学习笔记 HTTP: Web的基础 URL与资源 HTTP报文 连接管理 HTTP结构 Web服务器 代理 缓存 集成点: 网关,隧道及中继 Web机器人 识别,认证与安全 客 ...

  2. JavaScript 权威指南-学习笔记(一)

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! ## JavaScript 权威指南-学 ...

  3. CSS权威指南学习笔记系列(1)CSS和文档

    题外话:HTML是一种结构化语言,而CSS是它的补充:这是一种样式语言.CSS是前端三板斧之一,因此学习CSS很重要.而我还是菜鸟,所以需要加强学习CSS.这个是我学习CSS权威指南的笔记,如有不对, ...

  4. Hadoop权威指南学习笔记二

    MapReduce简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.n ...

  5. Hadoop权威指南学习笔记一

    Hadoop简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出.一起学习一起进步. 转载请注明:http://blog.csdn.net/ ...

  6. Hadoop权威指南学习笔记三

    HDFS简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考.有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my ...

  7. IDA Pro权威指南学习笔记(一)

    一直不懂逆向,最近刚好不忙,于是学习逆向,用来做笔记,顺便和大家分享交流. 参考书籍<IAD PRO权威指南> 工具: PETools: ETools 是另一款很好的PE文件编辑工具,以前 ...

  8. css权威指南学习笔记 —— css选择器

    1,选择器:选择器的一些基本常用规则基本都记得,w3c上都有,平时也常用,不常用的一些后代选择器经常就忘记了.一些归纳一下后代选择器,加深一下印象: a:子选择器:   p>a  a是直接是p的 ...

  9. maven权威指南学习笔记(五)—— POM

    1. 简介 Archetype插件通过 pom.xml 文件创建了一个项目.这就是项目对象模型 (POM),一个项目的声明性描述. 当Maven运行一个目标的时候,每个目标都会访问定 义在项目POM里 ...

  10. maven权威指南学习笔记(三)——一个简单的maven项目

    目标: 对构建生命周期 (build  lifecycle),Maven仓库 (repositories),依赖管理 (dependency management)和项目对象模型 (Project O ...

随机推荐

  1. Android——requestWindowFeature()的应用

    Android开发中经常会在setContentView(R.layout.XXX); 前设置requestWindowFeature(XXXX). 他的意思是需要软件全屏显示.自定义标题(使用按钮等 ...

  2. tar包解压后用户名改变

    最近开发项目时在PC上wang用户及组下打包的tar包解压到嵌入式设备root用户下,文件目录及文件用户名改为dbus和dbus组,导致cron等应用异常. 出现此问题时可以通过修改相应文件(件)的用 ...

  3. ansible普通用户su切换

    [root@361way.com ~]# cat /etc/ansible/hosts [test01] 10.212.52.14 ansible_ssh_user=test ansible_ssh_ ...

  4. JDBC setCatalog

    数据库URL:jdbc:mysql://localhost:3306/{catalog} catalog指代数据库名称. 1如果该参数不存在,则必须使用setCatalog设置数据库名称,否则会抛出 ...

  5. 对比几种在ROS中常用的几种SLAM算法

    在此因为要总结写一个文档,所以查阅资料,将总结的内容记录下来,欢迎大家指正! 文章将介绍使用的基于机器人操作系统(ROS)框架工作的SLAM算法. 在ROS中提供的五种基于2D激光的SLAM算法分别是 ...

  6. kd-tree理论以及在PCL 中的代码的实现

    (小技巧记录:博客园编辑的网页界面变小了使用Ctrl  ++来变大网页字体) 通过雷达,激光扫描,立体摄像机等三维测量设备获取的点云数据,具有数据量大,分布不均匀等特点,作为三维领域中一个重要的数据来 ...

  7. Ubuntu下的OpenResty 安装

    安装前的准备 您必须将这些库 perl 5.6.1+, libreadline, libpcre, libssl安装在您的电脑之中. 对于 Linux来说, 您需要确认使用 ldconfig 命令,让 ...

  8. 史上最全 Css Hack汇总

    前言 每次要找个东西都得慢慢去翻自己收集的一些东西,每次都是那么花时间,再加上有时存放时间久远就忘了当时是存在哪了,为了方便查询及阅读,决定把一些Css Hack 收集起来... 1.区别不同浏览器, ...

  9. MapReduce 图解流程超详细解答(1)-【map阶段】

    转自:http://www.open-open.com/lib/view/open1453097241308.html 在MapReduce中,一个YARN  应用被称作一个job, MapReduc ...

  10. OSPF的特征、术语、包类型、邻居关系的建立、RID的选择、DR和BDR的选举、度量值的计算、默认路由、验证

    链路状态路由协议OSPF的特征.术语.包类型.邻居关系的建立.RID的选择.DR和BDR的选举.度量值的计算.默认路由.验证等. 文章目录 [*1*].链路状态路由协议概述 工作过程 优缺点 [*2* ...