HTTP报文结构

HTTP有两类报文:

  1. 请求报文-------从客户向服务器发送请求报文,如图6-12(a)
  2. 响应报文-------从服务器到客户的回答,如图6-12(b)

由于HTTP是面向文本的,因此在报文中的每一个字段都是一些ASCII码串,因而各个字段的长度是不确定的。

请求报文和响应报文都是由三个部分组成。两种报文格式区别是开始行不同。

  1. 开始行,用于区分是请求报文还是响应报文。在请求报文中的开始行叫做请求行,响应报文中的开始行叫做状态行。在开始行的三个字段之间都以空格分隔开,最后的“CR”和“LF”分别代表“回车”和“换行”。
  2. 首部行,用来说明浏览器、服务器或报文主体的一些信息。首部可以有好几行,但也可以不使用。在每一个首部行中都有首部字段名和它的值,每一行结束的地方都要有“回车”和“换行”。整个首部行结束时,还有一空行将首部行和后面的实体主体分开。
  3. 实体主体,在请求报文中一般都不用这个字段,而在响应报文中也可能没有这个字段。

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请求报文和响应报文格式)相关推荐

  1. vue-cli 目录结构详细讲解

    https://juejin.im/post/5c3599386fb9a049db7351a8 vue-cli 目录结构详细讲解 目录 结构预览 ├─build//保存一些webpack的初始化配置, ...

  2. android 设置允许http请求_接口测试第6期:Fiddler设置开始捕获和停止捕获、HTTP报文结构,如何删除请求...

    关注后回复[软件测试]查看更多 上一期(第5期)用视频的形式分享了Fiddler抓包实战.Fiddler过滤器filters的使用.fiddler导出JMeter脚本插件等内容,在学习本期内容之前,需 ...

  3. blog微服务架构代码_Spring Cloud微服务架构代码结构详细讲解

    上一篇我们介绍了spring cloud云服务架构 - particle云架构代码结构,简单的按照几个大的部分去构建代码模块,让我们来回顾一下: 第一部分: 针对于普通服务的基础框架封装(entity ...

  4. java解析xml报文_java 如何解析http请求返回的xml报文

    xml报文解析方法有很多种,此处采用dom4j的方法. dom4j的jar包下载地址:https://dom4j.github.io/# 1.request.getInputStream()和new ...

  5. HTTP请求/响应报文结构

    HTTP请求/响应报文结构 HTTP请求报文 一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据. 1.请求行 请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它 ...

  6. HTTP请求/响应报文头部结构

    HTTP请求 一个HTTP请求由四个部分组成:请求行.请求头部.空行.请求数据. -请求行 请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GET /data ...

  7. 【计算机网络】应用层 : 万维网 和 HTTP 协议 ( 万维网概述 | HTTP 协议特点 | HTTP 协议连接方式 | HTTP 协议报文结构 | HTTP 请求报文 | HTTP 响应报文 )

    文章目录 一.万维网概述 ★ 二.HTTP 协议 ( 超文本传输协议 ) ★ 三.HTTP 协议特点 ★ 四.HTTP 连接方式 ★ 五.HTTP 协议报文结构 六.HTTP 请求报文 ★ 七.HTT ...

  8. Http请求、响应报文结构

    简介 用于http协议交互的信息被称为http报文.请求端(客户端)的http报文叫做请求报文,响应端(服务端)的叫做响应报文.http报文本身是由多行数据构成的字符串文本.http报文大致可分为报文 ...

  9. http :请求响应报文-web服务-ajax-cors跨域

    node:http 协议:请求响应报文-web服务-url与对象的转化-ajax-cors跨域 1 梳理重点 1.1搭建服务 注意: ① 站点创建完成后,需要通过node命令启动 ② 创建站点的代码如 ...

最新文章

  1. IE9浏览器更像一个互联网舞台
  2. windows操作系统的日志类型
  3. 一维数组中的一些问题
  4. c++ 弧形面如何逆时针排序_环形导轨如何实现拐弯?
  5. java怎么读取文件夹下的_java怎么读取读取文件夹下的所有文件夹和文件?
  6. softmax ce loss_手写softmax和cross entropy
  7. 面试官 | Nginx 是什么?有什么作用?
  8. 五大软件设计原则学习笔记1——单一职责原则
  9. 电子设计大赛-信号源类题目分析
  10. docker配置mysql文件位置_Docker安装MySQL并挂载数据及配置文件
  11. 北京54坐标系和1980西安坐标系转换
  12. Java小程序--多彩时钟表盘的制作
  13. 【和小冉一起学习c++】踏入c++的大门~第一个c++程序
  14. 基于gibbsLDA的文本分类
  15. 几款漂亮的Eclipse编辑器皮肤
  16. (原创)使用AsyncTask(带修改线程池方式)+自定义ImageLoader+LRU算法对图片三级缓存及其显示优化(只有在ListView滑动停止的时候才去网络请求获取图片数据)
  17. android 多人视频,Android QQ 5.0 正式版:全新界面、精彩动态、多人视频/音频
  18. Linux timeout 命令
  19. 看透设计模式-实践与总结
  20. STM32F103VBT6 使用16M晶振和8M晶振 RCC设置有何不同?

热门文章

  1. 造成数据丢失的原因有哪些
  2. Oracle数值函数,日期函数,转换函数,通用函数(七)
  3. 毕业设计——登录界面设计
  4. 程序员在小公司(没有大牛,人少)怎么成长?
  5. lombok @Data注解打印时不会打印父类属性
  6. MATLAB做回归分析
  7. Threes.js入门篇之6 - 场景漫游
  8. 100集华为HCIE安全培训视频教材整理 | 流量型攻击防范技术-UDP
  9. STM32 模拟IIC源代码 多个I2C减少冗余代码
  10. WIN10打开IE浏览器访问只兼容IE的网站被EDGE浏览器强制关IE的解决方法