HTTP基本架构

用一张简单的流程图来展示HTTP协议的基本架构,以便先有个基础的了解。

1)Web Client可以是浏览器、搜索引擎等等一切基于HTTP协议发起http请求的工具。

2)Web Server可以是任何的能解析http请求,并返回给Web Client可识别的响应的服务,常见

的有apache、nginx、IIS等等web服务器。

浓缩的都是精华,看下最简洁的HTTP交互图:

HTTP报文结构

  1)请求报文

HTTP请求报文由请求行、请求头、空行和请求内容4个部分构成。

      请求行:

由请求方法字段、URL字段、协议版本字段三部分构成,它们之间由空格隔开。常用

的请求方法有:GET、POST、HEAD、PUT、DELETE等等。

      请求头:

请求头由key/value对组成,每行为一对,key和value之间通过冒号(:)分割。请求头的

作用主要用于通知服务端有关于客户端的请求信息。

典型的请求头有:

User-Agent:生成请求的浏览器类型

Accept:客户端可识别的响应内容类型列表;星号*用于按范围将类型分组。*/*表示可

接受全部类型,type/*表示可接受type类型的所有子类型。

Accept-Language:客户端可接受的自然语言

Accept-Encoding:客户端可接受的的编码压缩格式

Accept-Charset:可接受的字符集

Host:请求的主机名,允许多个域名绑定同一IP地址

connection:连接方式(close或keeplive)

Cookie:存储在客户端的扩展字段

    空行:

最后一个请求头之后就是空行,用于告诉服务端以下内容不再是请求头的内容了。

请求内容:

      请求内容主要用于POST请求,与POST请求方法配套的请求头一般有

Content-Type(标识请求内容的类型)和Content-Length(标识请求内容的长度)

  2)响应报文

      HTTP响应报文由状态行、响应头、空行和响应内容4个部分组成。

状态行:

由HTTP协议版本、状态码、状态码描述三部分构成,它们之间由空格隔开。

状态码由3位数字组成,第一位标识响应的类型,常用的5大类型状态码如下:

1xx:表示服务器已经接收了客户端的请求,客户端可以继续发送请求

2xx:表示服务器已经成功接收到请求并进行处理

3xx:表示服务器要求客户端重定向

4xx:表示客户端的请求有非法内容

5xx:表示服务器未能正常处理客户端的请求而出现意外的错误

常见状态码说明:

200 OK:表示客户端请求成功

400 Bad Request:表示客户端请求有语法错误,不能被服务器端解析

401 Unauthonzed:表示请求未经授权,该状态码必须与WWW-Authenticate报文头一起使用

404 Not Found:请求的资源不存在,例如输入错误的url

500 Internal Server Error:表示服务器发生了不可预期的错误,导致无法完成客户端的请求

503 Service Unavailable:表示服务器当前不能处理客户端的请求,在一段时间后服务器可能恢复正常。

响应头:

一般情况下,响应头会包含以下,甚至更多的信息。

Location:服务器返回给客户端,用于重定向到新的位置

Server:包含服务器用来处理请求的软件信息及版本信息

Vary:标识不可缓存的请求头列表

Connection:连接方式。

对于请求端来讲:close来告诉服务端,断开连接,不用等待后续的请求了。keeplive则是告诉服务端,

在完成本次请求的响应后,保持连接,等待本次连接后的后续请求。

对于响应端来讲:close表示连接已经关闭。keeplive则表示连接保持中,可以继续处理后续请求。

Keep-Alive表示如果请求端保持连接,则该请求头部信息表明期望服务端保持连接多长时间(秒),

例如300秒,应该这样写Keep-Alive:300

空行:

最后一个响应头之后就是空行,用于告诉请求端以下内容不再是响应头的内容了。

  响应内容:

服务端返回给请求端的文本信息。

HTTP报文示例

在Firefox下用firebug随意抓取一个HTTP包和上文的报文结构做下一一对应的关系图,以便了解实际的

包和标准报文结构的对应关系。

转载于:https://www.cnblogs.com/ljfight/p/7443037.html

接口测试01 - HTTP协议报文结构及示例相关推荐

  1. 下面哪个字段是http请求中必须具备的_HTTP 协议报文结构及示例

    HTTP 基本架构 下面我们用一张简单的流程图来展示 HTTP 协议基本架构,以便大家先有个基本的了解 Web Client 可以是浏览器.搜索引擎.机器人等等一切基于HTTP 协议发起 http 请 ...

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

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

  3. 玩转华为数据中心交换机系列 | 配置VLAN内协议报文透传示例

    素材来源:华为数据中心交换机配置指南 一边学习一边整理试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:玩转华为数据中心交换机系列 | 汇总_COCOgsta的博客-CSDN博客 组网需求 如 ...

  4. HTTP概念协议报文结构请求响应数据报分析

    文章目录 前言 一.HTTP的概念.特点.工作过程.应用场景 二.HTTP协议报文格式查看方式 三.HTTP协议数据报格式解读 http请求数据报 Part1:首行 关于URL 关于http方法 Ge ...

  5. HTTP协议协议报文结构请求响应数据报分析

    目录 一. 何为HTTP 1. 简单理解HTTP协议的工作过程 2. Fiddler抓包工具 2.1 抓包工具的原理 二. HTTP 请求解析 1. 首行结构 1.1 认识URL 1.2 HTTP方法 ...

  6. Tacacs-协议交互报文抓包示例

    其他文章: Tacacs+协议原理 Tacacs+服务搭建与配置详解 Tacacs+各厂商交换机配置 Tacacs+协议交互报文抓包示例 tacacs+协议报文抓包示例 如果使用wireshark对t ...

  7. UDP 的报文结构及注意事项

    UDP 的报文结构及注意事项 UDP的特点 UDP协议报文结构 UDP报文长度 校验和 TCP/UDP对比 UDP的特点 无连接:知道对端的IP和端口号就直接进行传输,不需要建立连接. 不可靠:即使因 ...

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

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

  9. JAVA实现报文解析:协议的数据类型和完整的报文结构解析

    **JAVA实现GBT32960报文解析系列文章链接:** JAVA实现GBT32960报文解析(一):协议的数据类型和完整的报文结构解析 JAVA实现GBT32960报文解析(二):数据包结构解析源 ...

最新文章

  1. Android-PullLayout
  2. php 超过100m文件上传,科技常识:apache+php上传大文件以上传100M为例
  3. Springboot文件上传提示:failed to convert java.lang.String to org.springframework.util.unit.DataSize
  4. c3p0、dbcp、druid三大连接池对比
  5. 【vcenter】redhat虚拟机时间莫名异常
  6. ES6 Proxy的简单使用
  7. 下载不了python_Python的下载与安装
  8. moodle架构分析---表现层的设计(一)
  9. WordPress疑难问题以及解决方案汇总
  10. VMware虚拟机桥接方式与真实主机共享上网
  11. 程序员初学者参考 ---懂得基础语法后如何做一个自己的case?
  12. iOS动画之模拟音量振动条
  13. 关于UML 画图工具EA 在linux下的安装和界面配置
  14. C语言sizeof与strlen详解(附大量笔试题题解过程)
  15. Strick mode 和Trace View使用
  16. 那一年,我们二十七八岁
  17. Sql Server 2012 中文软件和安装教程
  18. 微信支付开发(6)--付款码支付(被扫)开发详解
  19. Mysql 隐式类型转换
  20. 如何突破LinkedIn领英限制,导出非好友邮箱等社交方式

热门文章

  1. DDD:用 “四色原型” 进行 “聚合设计”
  2. 软件包有未满足的依赖关系
  3. Ninject + UnitTesting + Moq
  4. excel排名_WPS-Excel表格实用技巧——排位排名函数(RANK函数)的使用
  5. 计算机中iis6.0配置步骤,Win2003 IIS6.0 安装方法 图文详细教程
  6. buffer转int python_Python学习教程第23天numpy库(上)
  7. 修改title样式_css常见样式命名规则
  8. android jack log,Android:JACK编译错误汇总及解决
  9. 如何将文件从安卓设备中拷贝到PC中
  10. c 初始化char**_CC++|指针详述及实例分析