HTTP报文结构详细讲解(HTTP请求报文和响应报文格式)
HTTP报文结构
HTTP有两类报文:
- 请求报文-------从客户向服务器发送请求报文,如图6-12(a)
- 响应报文-------从服务器到客户的回答,如图6-12(b)
由于HTTP是面向文本的,因此在报文中的每一个字段都是一些ASCII码串,因而各个字段的长度是不确定的。
请求报文和响应报文都是由三个部分组成。两种报文格式区别是开始行不同。
- 开始行,用于区分是请求报文还是响应报文。在请求报文中的开始行叫做请求行,响应报文中的开始行叫做状态行。在开始行的三个字段之间都以空格分隔开,最后的“CR”和“LF”分别代表“回车”和“换行”。
- 首部行,用来说明浏览器、服务器或报文主体的一些信息。首部可以有好几行,但也可以不使用。在每一个首部行中都有首部字段名和它的值,每一行结束的地方都要有“回车”和“换行”。整个首部行结束时,还有一空行将首部行和后面的实体主体分开。
- 实体主体,在请求报文中一般都不用这个字段,而在响应报文中也可能没有这个字段。
HTTP请求报文详解:
请求报文的第一行“请求行”只有三个内容,即方法,请求资源的URL,以及HTTP的版本。
所谓“方法”就是对所请求的对象进行的操作,这些方法实际上也是一些命令。
如下图是HTTP请求报文的一些方法:
请求报文的例子(这个请求报文没有实体主体):
GET /chn/yxsz/index.htm HTTP/1.1 {请求行使用了相对URL}
Host : www.tsinghua.edu.cn {此行是首部行的开始。这行给出了主机的域名}
Connection : close {告诉服务器发送完请求的文档后就可释放连接,即不使用持续连接}
User-Agent : Mozilla/5.0 {表明用户代理是使用Netscape浏览器}
Accept-Language : cn {表明用户希望优先得到中文版本的文档}
{请求报文的最后还有一个空行}
HTTP响应报文详解:
每一个请求报文发出后,都能收到一个响应报文。响应报文的第一行就是状态行。
状态行包括三项:HTTP版本,状态码,以及解释状态码的简单短语。
状态码都是三位数字的,分为5大类共33种。
1xx 表示通知信息的,如请求收到了或正在进行处理。
2xx 表示成功,如接受或知道了。
3xx 表示重定向,如要完成请求还必须采取进一步的行动。
4xx 表示客户的差错,如请求中有错误的语法或不能完成。
5xx 表示服务器的差错,如服务器失效无法完成请求。
下面三种状态行在响应报文中常见:
HTTP/1.1 202 Accepted {接受}
HTTP/1.1 400 Bad Request {错误的请求}
HTTP/1.1 404 Not Found {找不到}
若请求的网页从http://www.ee.ayz.edu/index.htm转移到了一个新的地址,则响应报文的状态行和一个首部行就是下面的形式:
HTTP/1.1 301 Moved Permanently {永久性地转移了}
Location : http://www.ayz.edu/ee/index.htm {新的URL}
HTTP报文结构详细讲解(HTTP请求报文和响应报文格式)相关推荐
- vue-cli 目录结构详细讲解
https://juejin.im/post/5c3599386fb9a049db7351a8 vue-cli 目录结构详细讲解 目录 结构预览 ├─build//保存一些webpack的初始化配置, ...
- android 设置允许http请求_接口测试第6期:Fiddler设置开始捕获和停止捕获、HTTP报文结构,如何删除请求...
关注后回复[软件测试]查看更多 上一期(第5期)用视频的形式分享了Fiddler抓包实战.Fiddler过滤器filters的使用.fiddler导出JMeter脚本插件等内容,在学习本期内容之前,需 ...
- blog微服务架构代码_Spring Cloud微服务架构代码结构详细讲解
上一篇我们介绍了spring cloud云服务架构 - particle云架构代码结构,简单的按照几个大的部分去构建代码模块,让我们来回顾一下: 第一部分: 针对于普通服务的基础框架封装(entity ...
- java解析xml报文_java 如何解析http请求返回的xml报文
xml报文解析方法有很多种,此处采用dom4j的方法. dom4j的jar包下载地址:https://dom4j.github.io/# 1.request.getInputStream()和new ...
- HTTP请求/响应报文结构
HTTP请求/响应报文结构 HTTP请求报文 一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据. 1.请求行 请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它 ...
- HTTP请求/响应报文头部结构
HTTP请求 一个HTTP请求由四个部分组成:请求行.请求头部.空行.请求数据. -请求行 请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GET /data ...
- 【计算机网络】应用层 : 万维网 和 HTTP 协议 ( 万维网概述 | HTTP 协议特点 | HTTP 协议连接方式 | HTTP 协议报文结构 | HTTP 请求报文 | HTTP 响应报文 )
文章目录 一.万维网概述 ★ 二.HTTP 协议 ( 超文本传输协议 ) ★ 三.HTTP 协议特点 ★ 四.HTTP 连接方式 ★ 五.HTTP 协议报文结构 六.HTTP 请求报文 ★ 七.HTT ...
- Http请求、响应报文结构
简介 用于http协议交互的信息被称为http报文.请求端(客户端)的http报文叫做请求报文,响应端(服务端)的叫做响应报文.http报文本身是由多行数据构成的字符串文本.http报文大致可分为报文 ...
- http :请求响应报文-web服务-ajax-cors跨域
node:http 协议:请求响应报文-web服务-url与对象的转化-ajax-cors跨域 1 梳理重点 1.1搭建服务 注意: ① 站点创建完成后,需要通过node命令启动 ② 创建站点的代码如 ...
最新文章
- IE9浏览器更像一个互联网舞台
- windows操作系统的日志类型
- 一维数组中的一些问题
- c++ 弧形面如何逆时针排序_环形导轨如何实现拐弯?
- java怎么读取文件夹下的_java怎么读取读取文件夹下的所有文件夹和文件?
- softmax ce loss_手写softmax和cross entropy
- 面试官 | Nginx 是什么?有什么作用?
- 五大软件设计原则学习笔记1——单一职责原则
- 电子设计大赛-信号源类题目分析
- docker配置mysql文件位置_Docker安装MySQL并挂载数据及配置文件
- 北京54坐标系和1980西安坐标系转换
- Java小程序--多彩时钟表盘的制作
- 【和小冉一起学习c++】踏入c++的大门~第一个c++程序
- 基于gibbsLDA的文本分类
- 几款漂亮的Eclipse编辑器皮肤
- (原创)使用AsyncTask(带修改线程池方式)+自定义ImageLoader+LRU算法对图片三级缓存及其显示优化(只有在ListView滑动停止的时候才去网络请求获取图片数据)
- android 多人视频,Android QQ 5.0 正式版:全新界面、精彩动态、多人视频/音频
- Linux timeout 命令
- 看透设计模式-实践与总结
- STM32F103VBT6 使用16M晶振和8M晶振 RCC设置有何不同?