第三章 HTTP报文中的HTTP信息

第三章 HTTP报文中的HTTP信息

HTTP通信过程:客户端—》服务端,服务端—》客户端。

1.HTTP报文

  使用HTTP协议交互的信息被称为HTTP报文,包括请求报文和响应报文。

  【请求报文和响应报文结构】报文首部(请求行/相应行+首部字段<请求、响应、通用、实体首部字段>)+报文主体

 2.报文编码

  HTTP在传输数据是可以通过编码技术来有效处理大量的访问请求,但会消耗更多的CPU等资源。

  【报文和实体】报文是箱子,是HTTP通信中的基本单位,由8位组字节流组成,通过HTTP传输。实体是货物,作为请求或响应的有效载荷数据。报文中的实体是由实体首部和实体主体组成的。一般情况下,报文主体等于实体主体。但在传输过程进行编码操作时,实体主体内容发生变化,和报文主体产生差异。

  【压缩传输的内容编码】内容编码指明应用在实体内容上的编码格式,并保持实体信息原样压缩。内容编码后的实体由客户端接受并负责解码。常见的内容编码方式:gzip、compress(UNIX系统标准压缩)、deflate、identity。

  【分割发送的分块传输编码】将数据分割成多块,能让浏览器逐步显示页面。实体最后一块使用0(CR+LF)来标识。

  【发送多种数据的多部份对象集合】传输实体包含不同类型的数据,例如邮件的附件可以同时添加文字、音频、视频等,这就是采用了MIME(多用途因特网邮件扩展)机制。相应地,HTTP协议中也采纳了多部份对象集合,发送的报文主体有多种类型实体,通常在图片或文本等上传时使用。在HTTP报文中使用多部份对象集合时,需要在首部字段加上Content-type,并且使用boundary字符串来划分多部份对象的各类实体。

  多部份对象集合包含的对象如下:

      multipart/form-data:在Web表单文件上传时使用

      multipart/byteranges:状态码206响应报文包含了多个范围的内容是使用。  

  【获取部分内容的范围请求】指定要请求的范围的发送请求叫做范围请求。例如对一份10000字节大小的资源,如果使用范围请求,可以指请求5001~10000字节内的资源。

  Range: bytes=5001-10000    请求5001-10000字节的

  Range: bytes=5001-    请求5001字节之后全部的

  Range: bytes= -3000,5001-7000  请求一开始到3000和5001-7000的

  【内容协商返回最合适的内容】内容协商机制是指客户端和服务端就相应的资源内容进行交涉,然后提供给客户端最为适合的资源。包含在请求报文中的某些首部字段就是判断的基准。

  内容协商技术有以下三种类型:服务器驱动协商、客户端驱动协商、透明协商。

原文地址:https://www.cnblogs.com/qmillet/p/12075369.html

时间: 2024-11-08 23:55:07

第三章 HTTP报文中的HTTP信息的相关文章

(第三章,第四章)http报文内的http信息,返回结果的http状态码

第三章 http报文内的http信息 用于http协议交互的信息被称为http报文,包括请求报文和响应报文. 1.编码提升传输速率,在传输时编码能有效的处理大量的访问请求.但是编码的操作是计算机完成的,会消耗更多的cpu资源. 2.压缩传输的内容编码: 内容编码后的实体由客户端接受并负责解码. 3.分割发送的分块传输编码 在传输大量数据时,通过数据分割成多块,能够让浏览器逐步显示页面. 4.获取部分内容的范围请求: 可以处理大文件突然下载中断的问题. 5.内容协商返回最合适的内容 比如根据浏览器

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一、 除夕诗词概述 二、元日诗词概述 三、 元宵诗词概述 第二节:春节古诗词拾萃

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一. 除夕诗词概述 二.元日诗词概述 三. 元宵诗词概述 第二节:春节古诗词拾萃 一.腊祭诗词 二.祭灶诗词 三.除夕诗词 四.元旦诗词 五.人日诗词 六.元宵诗词 第一节:春节古诗词概述 中国的春节,作为除旧迎新的节日,时间相当长,从年前的腊月二十三,天空中就似乎弥漫了节日的气息.这种节日的气氛,在保持传统风俗较好的地方,甚至会持续到二月二龙抬头的时候,但欢度春节的高潮,应该说是自除夕始一直到上元之夜.因此,历代歌咏和反

计算机网络自顶向下方法:第三章 运输层

先根据书中的复习题巩固一遍, 最后回答常见问题TCP三次握手和四次挥手, 如有错误, 欢迎指出~ 点击下面跳过复习题 TCP3次握手: 为什么需要初始序号? 为什么需要3次握手, 而不是两次握手 TCP4次挥手 ? 第二章: 运输层 3.1~3.3节 R1. 假定网络层提供了下列服务. 在源主机中的网络层接收最大长度1200字节和来自运输层的目的主机地址的报文段. 网络层则保证将该报文段交付给位于目的主机的运输层. 假定在目的主机上能够运行许多网络应用进程. a. 设计可能最简单的运输层协议,

《C#高级编程》【第三章】对象和类型 -- 学习笔记

在看过C++之后,再看C#的面向对象感觉就不难了,只是有一些区别而已. 1.类定义 使用class关键字来声明类,其和C++不同的地方是在大括号之后不需要冒号 class 类名 { //类的内部 } //C++这里有一个冒号,而C#没有 2.类成员 3.字段与属性 首先我们先区分一下C#数据成员中的字段.常量与事件成员.字段.常量是与类的相关变量.事件是类的成员,在发生某些行为时(如:改变类的字段或属性,或进行某种形式的用户交互操作),它可以让对象通知调用方. 那么现在我们在来看看字段与属性,属

linux及安全《Linux内核设计与实现》第三章——20135227黄晓妍

第三章 (由于linux不区分进程和线程,所以它们在linux中被称为task,也叫任务) 总结:本章主要包括进程以及线程的概念和定义,Linux内核如何管理每个进程,他们在内核中如何被列举,如何创建,最终如何消亡.操作系统存在的意义在于运行用户程序,进程管理是所有操作系统的心脏所在. 3.1进程 进程是处于执行期的程序,是正在执行的程序代码的实时结果.但不仅局限于一段可执行的代码,还包括其他资源(打开的文件,挂起的信号,内核内部数据,处理器的状态,一个或者多个内存映射的内存地址空间,一个或者多

Js高设笔记 第三章

第三章 数据类型   P25 1, var message;   //age变量尚未声明 alert(message);  //"undefined" alert(age);    //产生错误 alert(typeof message);  //"undefined" alert(typeof age)  //"undefined" 2,var message;   //这是声明变量 var message = undefined; //这是用

Python读书笔记-第三章,四章

第三章 1. 字符串格式化 >>>format="hello %s  %s world" >>>values=('world','hot') >>>print format % values  #也可以接收单个字符串也 也可以用%f %d这类的类似与c的printf 匹配多个参数的时候应该用圆括号 >>>'%s plus %s equals %s'  %(1,1,2) >>>'%010.2f' %

关于《大道至简》第三章的收获

在第三章的开始,引用了一句文言文,我认为这句话说在一个团队中,如果取得了功绩就会将奖励发给功绩最高的人,如果造成了不好的事将由所有人承担.三个人的团队说的并不是真正的三个人,三是虚词.在一个团队中应该有人领导,领导在项目完成的很好的情况下,会领取奖励和接受别人的夸奖,在项目完成不好,甚至是没有完成时要承担责任.作为领导要有一种勇气,而不是只会领奖,不会承担责任. 做项目并不是死亡游戏,不会因为一个项目的失败就否认一个人的工作能力,但是我们在做项目时,假如失败了,要学会从中汲取教训,从一次次的失败

第三章 传奇的开始--Delphi(附读书笔记)

第三章 传奇的开始--Delphi "是惊世之作的Delphi让Borland重新站了起来,没有当初的Delphi,就没有今日的Borland!" "是Turbo Pascal诞生了Borland,但却是Object Pascal给予了Borland重生的机会!" 创造传奇故事的主角--Delphi 没有人会知道在两年后Borland C/C++会遭遇到这么大的失败,也没有人会预料到Borland又会再次因为Pascal而东山再起.Borland奋斗史精彩的地方就在