一、HTTP报文分类:请求报文和响应报文

请求报文会向Web服务器请求一个动作,响应报文会将请求的结果返回给客户端

请求报文格式:

<method>  <request-URL>  <version>            这一行称为:请求行或请求的起始行

<header>

<entity-body>

响应报文格式:

<version>  <status>  <reson-phrase>              这一行称为:响应行或响应的起始行

<header>

<entity-body>

二、下面是对各部分的描述:

  • 方法(method)

客户端希望服务器对资源执行的动作。是一个单独的词,如GET、POST

  • 请求URL(request-URL)

所请求资源,或者URL路径组件的完整URL

  • 版本(version)

报文所使用的HTTP版本,格式:HTTP/<major>.<minor>

  • 状态码(status-code)

描述请求过程中发生的情况。每个状态码的第一位数字用于描述状态的一般类别(成功、出错等)

  • 原因短语(reson-phrase)

数字状态码的可读版本(描述操作状态的文本形式的原因短语)

  • 首部(header)

可以有零个或多个首部,每个首部都包含一个名字,后面跟着一个冒号(:),然后是一个可选的空格,接着是一个值,最后是一个CRLF。首部是由一个空行(CRLF)结束的,表示了首部列表的结束和实体部分的开始。

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

本质上来说,它们只是一些名/值对的列表。

首部的分类:

1)通用首部:既可出现在请求报文中,也可出现在响应报文中。

比如Date首部就是一个通用首部,每一端都可以它来说明构建报文的时间和日期:

Date: Tue, 3 Oct 1974 02:16:00 GMT

2)请求首部:提供更多有关请求的信息,请求报文特有的。为服务器提供了一些额外信息,比如客户端希望接收什么类型的数据。例如,Accept首部就是用来告知

服务器客户端会接受与期请求相符的任意媒体类型:

Accept: */*

3)响应首部:提供更多有关响应的信息,以便为客户端提供信息(如,客户端在与哪种类型的服务器进行交互)。例如,Server首部就是用来告知客户端它在与一个

版本 1.0 的 Tiki-Hut 服务器进行交互:

Server: Tiki-Hut /1.0

4)实体首部:描述主体的长度和内容,或者资源本身。如,可以用实体首部来说明实体主体部分的数据类型。如Content-Type首部告知应用程序,数据是以iso-latin-1

字符集表示的HTML文档:

Content-type: text/html; charset=iso-latin-1

5)扩展首部:规范中没有定义的新首部,非标准的首部,由应用程序开发者创建,但还未添加到已批准的HTTP规范中。

  • 实体的主体部分(entity-body)

包含一个由任意数据组成的数据块。并不是所有的报文都包含实体的主体报文,有时,报文只是以一个CRLF结束。

实体的主体是HTTP报文的负荷,就是HTTP要传输的内容。

HTTP报文可以承载很多类型的数字数据,如图片、视频、HTML文档、软件应用程序、信息卡事务、电子邮件等。

HTTP报文语法/HTTP组成的更多相关文章

  1. 前端学HTTP之报文起始行

    前面的话 如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹了.HTTP报文是在HTTP应用程序之间发送的简单的格式化数据块,每条报文都包含一条来自客户端的请求,或者一条来自服务器的 ...

  2. HTTP协议 -- 认清协议常用状态码

    HTTP协议作为web服务的基础,理所应当受到重视,但是周围的同事能够讲清楚HTTP协议的凤毛麟角.既然是基础,就应该早一点掌握,所以近半年(2016-2月——2016年6月),不准备学习新技术了.首 ...

  3. Apache安装与属性配置

    Apache 事先创建进程 按需维持适当的进程 模块块设计,核心比较小,各种功能都模块添加(包括php) 支持运行配置,支持单独编译模块 支持多种方式的虚拟主机配置         Socket IP ...

  4. Web服务及http协议

    HTTP:HyperText Transfer Protocol--超文本传输协议 超链接:能够在文档之间跳转的文本 早起的Web:仅仅是能够实现在文档之间跳转的一种协议 http/0.9:仅支持纯文 ...

  5. PKI系统深入介绍

    公钥基础设施(Public Key Infrastructure,简称PKI)是目前网络安全建设的基础与核心,是电子商务安全实施的基本保障,因 此,对PKI技术的研究和开发成为目前信息安全领域的热点. ...

  6. PKI系统深入的介绍

    公钥基础设施(Public Key Infrastructure,缩写PKI)的基础与核心.是电子商务安全实施的基本保障.因此.对PKI技术的研究和开发成为眼下信息安全领域的热点. 本文对PKI技术进 ...

  7. [http服务]

    [http服务] CentOS 6 httpd 程序环境 记录了httpd的主进程编号: v 主程序文件: /usr/sbin/httpd /usr/sbin/httpd.worker /usr/sb ...

  8. HTTP就是这么简单

    为什么要学HTTP? 我们绝大多数的Web应用都是基于HTTP来进行开发的.我们对Web的操作都是通过HTTP协议来进行传输数据的. 简单来说,HTTP协议就是客户端和服务器交互的一种通迅的格式. H ...

  9. HTTP面试题都在这里

    HTTP常见面试题 Http与Https的区别: Http与Https的区别: HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头 HTTP 是不安全的,而 ...

随机推荐

  1. Redis的强大之处

    [Redis的强大之处] 1.拥有对脚本的支持(此处是lua),脚本可选择性的缓存. 2.提供HyperLogLog计数器. 3.提供5种数据类型的全方位支持:List.Hash.Set.Ordere ...

  2. Fundamentals of Garbage Collection

    [Fundamentals of Garbage Collection] 1.Reclaims objects that are no longer being used, clears their ...

  3. 【bzoj1087】互不侵犯King 状态压缩dp

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=1087 [题解] 用f[i][j][k]表示前i行放了j个棋子且第i行的状态为k的方案数. ...

  4. QByteArray to QString

    QByteArray => QString void BarEngine::ByteArrayToString(QByteArray &ba, QString &str) { i ...

  5. 使用C#进行基于PI的开发

    首先欲基于PI-SDK开发PI数据库,必须先安装PI-SDK,然后再VS中新建了一个aspnet网站,添加引用:PI-SDK 1.2 Type Library 和 PISDKCommon 1.2 Ty ...

  6. WSTMart开发文档

    WSTMart开发文档页面   PC版   开源版 授权版   序言   WSTMart安装协议   WSTMart电商系统安装   商城前台安装操作指南   用户中心指南   商家中心操作指南   ...

  7. [SoapUI]怎样获取隐藏元素的文本内容Get text of hidden element

    隐藏元素无法通过gettext()获取其文本内容,须用javascript来获取 String actualDataPointName = (String) ((JavascriptExecutor) ...

  8. Java程序设计17——多线程-Part-A

    1 多线程 1.1 简介 大部分时候,我们编写的程序都是单线程的.也就是都只有一条顺序执行流:程序从main方法开始执行,依次向下执行每行代码,如果程序执行某行代码遇到了阻塞,则程序会停滞在该处.如果 ...

  9. web端跨域调用webapi(转)

    在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案. 通过自己的研究以及在网上看了一些大神的博客,写了一个Demo 首先新建一个webapi的程序,如下图所示: 由于微软已 ...

  10. 图解利用Word来发布博客

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...