在开始学习本章之前,先来提一些问题,什么是报文?如何创建报文?怎么去理解报文?以及报文的用处有哪些?

什么是报文?

可以这么去理解,如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹了。

一、报文流

HTTP报文是在HTTP应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头,这新信息描述了报文的内容及含义,后面跟着可选的数据部分。

1.报文流入源端服务器

HTTP使用术语流入和流出来描述事物处理。

第一步流入源端服务器,工作完成后,会流回用户的Agent代理中

2.报文向下流游动

不管是请求报文还是响应报文,所有报文都会向下游流动。

二、报文的组成部分

HTTP报文是简单的格式化数据块。

它们是由三部分组成:对报文进行描述的起始行、包含属性的首部块,以及可选的、包含数据的主体部分。

1.报文的语法

所有的HTTP报文都可以分为两类:请求报文和响应报文。请求报文会向 Web服务器请求的一个动作。响应报文会将请求的结果返回给客户端。

方法、请求URL、版本、状态码、原因短语、首部、实体的主体部分

2.起始行

请求报文的起始行说明了要做些什么,响应报文的起始行说明了发生了什么。

请求行:(请求报文)请求报文的起始行(方法、URL)、HTTP的版本。

响应行:(响应报文)HTTP的版本、数字状态码、原因短语。

方法:get、head、post、put、trace、options、delete。

状态码

原因短语:它为状态码提供了文本形式的解释。

版本号:版本号会以HTTP/x.y形式出现在请求报文和响应报文的起始行中。使用版本号的目的是为使用HTTP的应用程序提供一种线索,以便互相了解对方的能力和报文格式。比较版本时,每个数字都要单独比较。HTTP/2.22就比HTTP/2.3的版本要高。22>3

3.首部:向请求和响应报文中添加一些附加信息。

4.实体的主体部分:

可选的,是HTTP报文的负荷,就是HTTP要传输的内容。

5.版本的0.9的报文:

是HTTP协议的早起版本。是鼻祖,协议简单。

三、方法

1.安全方法

2.GET:通常用于请求服务器发送某个资源

3.HEAD:服务器响应中只返回首部,不会返回实体的主体部分。在不获取资源的情况下了解资源的情况;查看响应中的状态码,看看某个对象是否存在;查看首部,测试资源是否被修改了。l

4.PUT:想服务器写入文档。由于PUT允许用户对内容进行修改,所以很多WEB服务器都要求在执行PUT之前,用密码登陆。

5.POST:通常用于表单。

6.TRACE:客户端发起一个请求,这个请求可能要穿过防火墙、代理、网关或者其他一些应用程序。每个中间节点可能会修改原始的HTTP请求。原始报文是否,以及如何被毁坏和修改过。

这个方法主要用于诊断。用于验证是否入院穿过了请求/响应链。..........

7.OPTIONS:options请求WEB服务器告知其支持的各种功能。使其不用实际访问那些资源就能判定访问各种资源的最优方式。

8.DELETE:请服务器删除请求URL所指定的资源。

9.扩展方法:指的就是没有在HTTP/1.1规范中定义的方法。

四、状态码

100-199  信息性状态码  200-299  成功状态码  300-399   重定向状态码   400-499  客户端错误状态码   500-599  服务器错误状态码

五、首部

1.通用首部:提供了与报文相关的最基本的信息。通用缓存首部,这样就不需要总是直接从源端服务器获取了。

2.请求首部:(请求报文)用于说明是谁或什么在发送请求、请求源自何处,或者客户端的喜好 和能力。

3.响应首部:(响应报文)为客户提供一些额外信息。比如谁在发送响应、响应者的功能、甚至与响应相关的一些特殊指令。

4.实体首部:HTTP报文的负荷。可以告知报文的接收者它在对什么进行处理。

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

  1. Http权威指南(报文)

    1.报文的组成 报文由 起始行.首部.主体(可选)组成 请求报文: <method> <request-URL> <version> <headers> ...

  2. 图解HTTP权威指南 | HTTP报文

                                                                                    一.问题 1.报文流是如何流动的 2.H ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Java设计模式———静态工厂

    上课时yqj2065要求:除了JDK等框架或工具中的类,自己编写的类不得使用new创建对象(Test除外). 据说是因为使用new会涉及到硬编码.(不是很懂) 所以要求用God类利用反射+配置文件来创 ...

  2. JS模式--装饰者模式

    在Javascript中动态的给对象添加职责的方式称作装饰者模式. 下面我们通常遇到的例子: var a = function () { alert(1); };//改成: var a = funct ...

  3. IO流程中IO向量iovec

    作者:Younger Liu,本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可. 为了提高从磁盘读取数据到内存的效率,引入了IO向量机制,IO向量即struct ...

  4. 在Ueditor / Umeditor中实现上传图片跨域

    近几天公司的后台管理需要图文编辑文章,但是ueditor提供的方法中,本地图片的上传是通过flash的方式处理的,且不支持跨域.若要在已经前后端分离的Angular项目中使用,需要做复杂的环境配置.跟 ...

  5. 图像转置的SSE优化(支持8位、24位、32位),提速4-6倍。

    一.前言 转置操作在很多算法上都有着广泛的应用,在数学上矩阵转置更有着特殊的意义.而在图像处理上,如果说图像数据本身的转置,除了显示外,本身并无特殊含义,但是在某些情况下,确能有效的提高算法效率,比如 ...

  6. 最长递增子序列hdu1087

    #include<map> #include<set> #include<list> #include<cmath> #include<queue ...

  7. Linux文件属性及如何修改文件属性

    ls -al:显示文件的文件名与相关属性并列出所有文件详细的权限与属性 dr-xr-x---.   7       root     root       4096       Apr3 12:31 ...

  8. 反序列py脚本分享(原创)

    代码如下: #!/usr/bin/env python # coding=utf-8 import socket import sys import requests import base64 im ...

  9. java实现二叉树的构建以及3种遍历方法

    转载自http://ocaicai.iteye.com/blog/1047397 大二下学期学习数据结构的时候用C介绍过二叉树,但是当时热衷于java就没有怎么鸟二叉树,但是对二叉树的构建及遍历一直耿 ...

  10. 通过分析 JDK 源代码研究 TreeMap 红黑树算法实

    TreeMap和TreeSet是Java Collection Framework的两个重要成员,其中TreeMap是Map接口的常用实现类,而TreeSet是Set接口的常用实现类.虽然HashMa ...