Http协议-报文
2013的双12即将到来,网上购物是大家所熟悉的。看中小米电视时,可以先下订单然后再付款,电商根据订单将小米电视正确安全的送达给我们。包裹包含电视的基本信息及电视的使用说明书,使我们能够初步的了解它的基本情况及指导我们怎么去使用它。订单和使用说明书是客户与电商沟通的桥梁,指引他们在网上购物。当然基于Http协议的网络通信,客户端和服务器也需要一种东西作为两者沟通的桥梁---Http报文,客户端和服务器分别主要指浏览器和Web服务器。下面以Http报文存在的意义、类型及组成成分展开讲述。
Http报文存在的意义
Http报文是客户端与服务器之间互相传送的数据块,这些数据块以一些文本形式的元信息开头,描述报文的内容及含义(订单及使用说明书),后面跟着可选的数据部分(电视)。客户端和服务器会解析报文的含义执行对应的操作。比如,jsp里response.sendRedirect(url),Web服务器就会发送一个300-399之间的状态码和Location首部告诉浏览器重新请求Location指定的URL。如果浏览器需要与Web服务器持久连接,那么前者就需要发送Connection:keep-alive报头告诉后者处理完请求后不要关闭连接,后者需要关闭连接就需发送Connetion:close告诉前者已关闭连接。在基于Http协议的网络通信过程中,客户端和服务器之间的通信只能依靠Http报头。换句话说,没有Http报文,客户端就不能与服务器通信。
Http报文的类型及组成成分
Http报文主要包含请求报文和响应报文。报文包括以下格式
起始行:报文的第一行,在请求报文中说明要做些什么,在响应报文中说明发生了什么
首部字段:起始行后面有零个或多个首部字段,首部以一个空格结束。比如Content-Length:300,表示响应主体的长度
主体:请求主体包含要发送给服务器的数据,响应主体包含要返回给客户端的数据,如下图

起始行包括请求行和响应行,请求行的格式:

响应行的格式:
。
Http协议的报头是千变万化的,我们不可能记住所有报头代表的含义。所以需要了解报头每个部分代表的意义和进行归类。
<method>:客户端告知服务器对资源执行的动作。比如GET,POST,HEAD
<version>:之所以客户端和服务器都需要返回和发送http的版本,是因为每个版本的http的报头都有差异,比如http1.0有持久连接的特性,而http0.9没有,客户端和服务器会根据http的版本在解析报头的时候做出正确的判断后再执行相应的动作。
<status>:服务器告诉客户端这次请求事务的结果,是失败还是成功还是...
<headers>:首部主要包括通用首部、请求首部、响应首部及主体首部。
通用首部:可以出现在请求报头和响应报文中。比如,Date,Connection
请求首部:仅出现在请求报文,比如,referer,host
响应首部:仅出现在响应报文,比如,Server
主体首部:描述主体,比如contentType,contentLength
<entity>:真正数据存放的地方。
Http协议-报文的更多相关文章
- HTTP协议报文格式
HTTP协议报文格式 接下来我们看看HTTP协议(Hypertext Transfer Protocol――超文本传输协议)浏览器端(客户端)向WEB服务器端访问页面的过程和HTTP协议报文的格式. ...
- HTTP协议报文、工作原理及Java中的HTTP通信技术详解
一.web及网络基础 1.HTTP的历史 1.1.HTTP的概念: HTTP(Hyper Text Transfer Protocol ...
- HTTP协议报文、工作原理
一.web及网络基础 1.HTTP的历史 1.1.HTTP的概念: HTTP(Hyper Text Transfer Protocol ...
- HTTP协议报文结构及示例
HTTP基本架构 下面我们用一张简单的流程图来展示HTTP协议基本架构,以便大家先有个基本的了解. 9.png Web Client可以是浏览器.搜索引擎.机器人等等一切基于HTTP协议发起http请 ...
- HTTP 协议报文解析
说明转载自https://blog.csdn.net/chf1142152101/article/details/74162755 本篇主要是为了记录HTTP中报文的格式,以便针对报文进行解析.首先会 ...
- 计算机网络 之 TCP协议报文结构
前言:上学期实训课,由于要做一个网络通信的应用,期间遇到各种问题,让我深感计算机网络知识的薄弱.于是上网查找大量的资料,期间偶然发现了roc大神的博客,很喜欢他简明易懂的博文风格.本文受roc的< ...
- HTTP协议图--HTTP 协议报文结构
1.HTTP 报文 用于 HTTP 协议交互的信息被称为 HTTP 报文.请求端(客户端)的 HTTP 报文叫做请求报文:响应端(服务器端)的叫做响应报文.HTTP 报文本身是由多行(用 CR[car ...
- 新版期货数据交换(FTD)协议报文分析
因为需要开发模拟CTP后台服务,实现一键切换CTP,所以我们需要分析CTP报文.(基于FTD协议2004版改进) 网上公开的只能找到04年老版本,和现前报文格式出入较大.参考:http://www ...
- 实验六 TLS协议报文解析
一.实验目的 1.访问一个https://....的网站,捕TLS包并分析报文序列. 2.分析连接建立的完整过程,如:TCP三次握手.SSL安全连接,使用TLS协议连接.协商过程,加密传送的状态.TC ...
随机推荐
- android 导入项目 项目中文字乱码问题
乱码问题出现了几次,一直没有在意,今天又出现了,现总结如下: eclipse之所以会出现乱码问题是因为eclipse编辑器选择的编码规则是可变的.一般默认都是UTF-8或者GBK,当从外部导入的一个工 ...
- VMware 报错“Intel VT-x处于禁止状态”
VMware Workstation 10虚拟机安装64位windows server 2008 R2系统时报错“Intel VT-x处于禁止状态”,如下图. 工具/原料 VMware Wor ...
- Struts2 ModelDriven接口使用
用户在做http请求时一般都有两种方式:get和post方式.get方式用来获取查询相关信息,既向服务器获得信息,而post方式用来更新信息既向服务器提交数据.通常情况下,用get方式向服务器获取信息 ...
- iOS开发 两个内存错误的一般处理方法
本文转载至 http://blog.sina.com.cn/s/blog_a843a8850101dxlj.html 由于iOS5.0之前没有自动应用计数机制,也没有Java那样的垃圾回收功能.我们都 ...
- python 基础 4.2 高阶函数上
一.高阶函数 把函数当做参数传递的一种函数 1>map()函数 map函数是python内置的一个高阶函数,它接受一个函数f和一个list,并把list元素以此传递给函数f,然后返回一个函数 ...
- python classmethod方法 和 staticmethod
classmethod() 是一个类方法,用来装饰对应的函数.被classmethod 装饰之后就无需实例化,也不需要在函数中传self,但是被装饰的函数第一个参数需要是cls来表示自身类.可以用来调 ...
- 【BZOJ3864】Hero meet devil DP套DP
[BZOJ3864]Hero meet devil Description There is an old country and the king fell in love with a devil ...
- 九度OJ 1061:成绩排序 (排序)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:17158 解决:4798 题目描述: 有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相 ...
- synchronized同步关键字
参考:http://blog.csdn.net/luoweifu/article/details/46613015 synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种: ...
- 关于Wix的源代码
Wix的源代码有两种方式可以获得,以3.8为例: 在Release的页面下载wix38-debug.zip 通过SourceCode页面下载,http://wix.codeplex.com/Sourc ...