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 ...
随机推荐
- 【BZOJ4843】[Neerc2016]Expect to Wait 排序
[BZOJ4843][Neerc2016]Expect to Wait Description ls最近开了一家图书馆,大家听说是ls开的,纷纷过来借书,自然就会出现供不应求的情况, 并且借书的过程类 ...
- 九度OJ 1043:Day of Week(星期几) (日期计算)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5349 解决:1923 题目描述: We now use the Gregorian style of dating in Russia. ...
- Linux内核的编译安装
前言 Linux内核是Linux操作2347系统的核心,也是整个Linux功能体现的核心,就如同发动机在汽车中的重要性.内核主要功能包括进程管理.内存管理.文件管理.设备管理.网络管理等.Linux内 ...
- google guice
1 google guice是什么 google guice是一个轻量的DI容器. 2 guice和spring对比 spring的配置放在xm文件中,guice的配置放在Module中. guice ...
- Hibernate连接池设置
在公司第一次做项目放到服务器上测试,发现每隔一段时间不用数据库就连接不上了(以前学过连接池,很久没用就忘了),在myeclipse上的时候没发现,网上搜索才发现是hibernate连接池配置问题. 1 ...
- 使用AXIS2作为Client訪问WebService
使用AXIS2,能够方便的构建WebService的server端,也能够非常方便的作为Cilent,来訪问别的WebService. 以下依据工作中的经历,整理了一下,作为Cilent訪问WebSe ...
- 一起来学linux:SAMBA服务器搭建
前面介绍的NFS服务器的用来linux和linux系统之间共享文件和目录的,那如果是linux和windows之间需要共享修改文件该如何操作呢.这据需要用到SAMBA系统.我们首先来看下SAMBA系统 ...
- php 生成bing词典能导入的xml(有道词典->bing词典)
编程以来一直用网易有道词典查单词.翻译:最近一直在看英文方面的资料,于是越来越对有道词典(划词.广告,本来想转灵格斯的,但灵格斯没有android版)不满意,一番试用后决定转bing词典,于是想把有道 ...
- Java for LeetCode 084 Largest Rectangle in Histogram【HARD】
For example, Given height = [2,1,5,6,2,3], return 10. 解题思路: 参考Problem H: Largest Rectangle in a Hist ...
- c#应用程序带参数运行
有时候我们需要让软件带参数运行,使用参数控制软件的部分行为, C#默认窗口应用是不带参数的,不过在Main函数的参数手动加上就可以得到参数了. 举例如下: /// <summary> // ...