一、 HTTP request详解

客户端发送的HTTP请求到Web服务器时,请求消息主要包含:

  • 请求行
  • 请求头
  • 请求体(请求报文/请求参数)

1.1 请求行

请求行用于说明请求类型,以及要访问的资源和使用的HTTP版本。

请求行包含以下内容:

  • 请求方法: HEAD、GET、POST、PUT、OPTIONS、DELETE、PATCH

HTTP定义了很多于服务器交互的方法:

  • GET 请求指定的页面信息,并返回实体主体
  • POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
  • PUT 向Web服务器发送数据,并存储在Web服务器内部
  • HEAD 检查一个对象是否存在
    DELETE 从Web服务器上删除一个文件
  • CONNECT 对通道提供支持
  • TRACE 跟踪到服务器的路径
  • OPTIONS 查询Web服务器的性能
  • 请求地址
  • HTTP协议/版本

1.2 请求头 headers

请求头headers用于指定服务器要使用的附加信息

  • Accept:指定客户端能够接收的内容类型,如:Accept: text/plain, text/html
        类型中的先后次序表示客户端接收的先后顺序

  • Accept-Charset:浏览器可以接受的字符编码集。

  • Accept-Encoding:指定浏览器可以支持的web服务器返回内容压缩编码类型。
        ;Accept-Encoding允许Web服务器将输出内容发回客户端之前进行压缩,以节约带宽。这里设置的就是客户端浏览器所能够支持的压缩格式。
        简单来说,就是Web服务器在给客户端返回页面数据之前,将数据以gzip格式进行压缩,也节省带宽,加快传输。

说明:

  • gzip 是GNU zip的缩写,是GNU自由软件的文件压缩程序,也用来表示gzip文件格式。
  • deflate 使用LZ77算法于哈夫曼编码(Huffman Coding)的一种无损压缩算法
  • Accept-Language:浏览器可接受的语言

说明:

  • zh-cn表示简体中文
  • zh 表示中文
  • q 表示权重系数,范围0~1,q值越大请求越倾向于获取;之前的类型所表示的内容,若没有指定q值则默认为1。若q值为0则用于提醒服务器哪些是浏览器不接受的内容类型。
  • Accept-Ranges:可以请求网页实体的一个或者多个子范围字段
  • Authorization:HTTP授权的授权证书
  • Cache-Control:指定请求和响应遵循的缓存机制
  • Connection:表示是否需要持久连接。如果Web服务器接收到Connection的属性值为Keep-Alive,或者请求所使用的协议版本是HTTP 1.1(默认持久连接),此时就会采用持久连接。

用法:

  • Connection: keep-alive
    当一个Web页面打开时,客户端和Web服务器之间用于传输HTTP数据库的TCP连接不会关闭,如果客户端再次访问Web服务器上的网页,会继续使用这条已经建立的连接。
  • Connection: close
    close表示一个Requset请求完成后,客户端和Web服务器之间用于传输HTTP数据的TCP连接会关闭,当客户端再次发送Request请求时,需要重新建立TCP连接。
  • Cookie:HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
  • Content-Length:请求的内容长度,单位字节(byte),并不包含请求行和请求头的数据长度。
  • Content-Type:请求的与实体对应的MIME信息,只有在POST方法提交时才需要设置此属性。

当使用POST方式提交数据时,Content-Type属性值支持两种编码类型:
    1. application/x-www-form-urlencode
        默认缺省的编码类型,表单向Web服务器提交数据时所采用的编码类型。
        当向Web服务器发送大量文本、包含非ASCII字符的文本、二进制数据时采用这种编码方式效率很低。
    2. multipart/form-data
        文件上传时所使用的编码类型,它既可以发送文本数据,也支持二进制数据上传。
        在Content-Type属性中还可以指定提交内容的Charset字符编码

  • Date:请求发送的日期和时间
  • Expect:请求的特定的服务器行为
  • Host:指定请求的服务器的域名和端口号
  • Pragma:用来包含实现特定的指令
  • Proxy-Authorization:连接到代理的授权证书
  • Range:只请求实体的一部分,指定范围
  • Referer:先前网页的地址,当前请求网页紧随其后,即来路
  • User-Agent:User-Agent的内容包含发出请求的用户信息

二、HTTP response详解

一个http response(http响应)指的是从服务端到客户端的响应消息,它包括了以下信息:

  • 响应行
  • 响应头
  • 响应体(响应报文)

2.1 响应行

  • 报文协议及版本
    如:HTTP/1.1 200 OK
  • 状态码及状态描述
  • 1xx: 信息,服务器收到请求,需要请求者继续执行操作
  • 2xx: 成功,操作被成功接收并处理
        200 OK:请求成功。 服务器已成功处理了请求。一般用于GET与POST请求
        204 No Content:无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档。一般用在只是客户端向服务器发送信息,而服务器不用向客户端返回什么信息的情况。不会刷新页面。
        206 Partial Content:部分内容。服务器成功处理了部分GET请求。响应报文中包含Content-Range指定范围的实体内容
  • 3xx: 重定向,需要进一步的操作以完成请求
        301 Moved Permanently:永久移动。资源(网页等)被永久转移到其它URL。服务器返回此响应(对GET或HEAD请求的响应)时,会自动将请求者转到新位置。
         302 Found:临时移动。 资源只是临时被移动,请求者应继续使用原有位置来进行以后的请求。
        303 See Other:临时重定向,应使用GET定向获取请求资源。303功能与302一样,区别只是303明确客户端应该使用GET访问。
        304 Not Modified:未修改。 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。
        305 Use Proxy:使用代理。所请求的资源必须通过代理访问
        307 Temporary Redirect:临时重定向。服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
  • 4xx: 客户端错误,请求包含语法错误或无法完成请求
        400 Bad Request: 客户端请求的语法错误,服务器无法理解
        401 Unauthorized: 请求要求用户的身份认证,这个状态代码必须和WWW-Authenticate报头域一起使用。
        403 Forbidden: 服务器理解请求客户端的请求,但是拒绝执行此请求
        404 Not Found: 服务器无法根据客户端的请求找到资源(网页)
        415 Unsupported media type:服务器无法处理请求附带的媒体格式
  • 5xx: 服务器错误,服务器在处理请求的过程中发生了错误
        500 Internal Server Error: 服务器内部错误,无法完成请求
        502 Bad Gateway: 网关错误。充当网关或代理的服务器,从远端服务器接收到了一个无效的请求
         503 Server Unavailable:由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中

505 HTTP Version not supported: 服务器不支持请求的HTTP协议的版本,无法完成处理

HTTP状态码大全

2.2 响应头

  • Accept-Ranges:表明服务器是否支持指定范围请求及哪种类型的分段请求
  • Age:从原始服务器到代理缓存形成的估算时间(以秒计,非负)
  • Allow:对某网络资源的有效的请求行为,不允许则返回405
  • Cache-Control:告诉所有的缓存机制是否可以缓存及哪种类型,常见的取值有常见的取值有private、public、no-cache、max-age,no-store,默认为private。
  • Content-Encoding:web服务器支持的返回内容压缩编码类型
  • Content-Language:响应体的语言
  • Content-Length:响应体的长度
  • Content-Location:请求资源可替代的备用的另一地址
  • Content-Range:在整个返回体中本部分的字节位置
  • Content-Type:返回内容的MIME类型
  • Date:原始服务器消息发出的时间
  • Expires:响应过期的日期和时间
  • Location:用来重定向接收方到非请求URL的位置来完成请求或标识新的资源,需要与状态码302配合使用,完成跳转。
  • Pragma:包括实现特定的指令,它可应用到响应链上的任何接收方
  • Proxy-Authenticate:它指出认证方案和可应用到代理的该URL上的参数
  • Server:web服务器软件名称
  • Set-Cookie:设置Http Cookie
  • Transfer-Encoding:文件传输编码
  • Vary:告诉下游代理是使用缓存响应还是从原始服务器请求
  • Via:告知代理客户端响应是通过哪里发送的
  • WWW-Authenticate:表明客户端请求实体应该使用的授权方案

2.3 响应体

响应体是服务器回写给客户端的页面正文,浏览器将正文加载到内存,然后解析渲染 显示页面内容

Jmeter之HTTP请求详解相关推荐

  1. Jmeter压测工具详解

    Jmeter压测工具详解 1. Jmeter概述 1.1 Jmeter简介 1.2 Jmeter适用场景 2. Jmeter安装配置 2.1 下载安装 2.2 环境配置(可不配) 2.3 Jmeter ...

  2. JavaEE基础(03):Http请求详解,握手挥手流程简介

    本文源码:GitHub·点这里 || GitEE·点这里 一.Http协议简介 1.概念说明 HTTP超文本传输协议,是用于从万维网服务器传输超文本到本地浏览器的传送协议,基于TCP/IP通信协议来传 ...

  3. java web流量阀值_Javaweb应用使用限流处理大量的并发请求详解

    在web应用中,同一时间有大量的客户端请求同时发送到服务器,例如抢购.秒杀等.这个时候如何避免将大量的请求同时发送到业务系统. 第一种方法:在容器中配置最大请求数,如果大于改请求数,则客户端阻塞.该方 ...

  4. fetch 请求详解

    转载:前后端数据交互(四)--fetch 请求详解 - 前端人 - 博客园 fetch 是 XMLHttpRequest 的升级版,使用js脚本发出网络请求,但是与 XMLHttpRequest 不同 ...

  5. 性能测试之JMeter中JSON断言详解

    JMeter中有个元件叫做断言(Assertion),它的作用和LoadRunner中的检查点类似.用于检查测试中得到的响应数据是否符合预期,用以保证性能测试过程中的数据交互与预期一致. 若接口的返回 ...

  6. jmeter 控制偏离_Jmeter(二十) - 从入门到精通 - JMeter监听器 -下篇(详解教程)

    1.简介 监听器用来监听及显示JMeter取样器测试结果,能够以树.表及图形形式显示测试结果,也可以以文件方式保存测试结果,JMeter测试结果文件格式多样,比如XML格式.CSV格式.默认情况下,测 ...

  7. jmeter脚本录制入门详解

    jmeter的安装部署可参考 (14条消息) 性能测试工具-JMeter简介及安装_小han的日常的博客-CSDN博客https://blog.csdn.net/weixin_50464533/art ...

  8. Jmeter - JMeter监听器 -上篇(详解教程)

    目录 1.简介 2.预览监听器 3.常用监听器详解 3.1 察看结果树 3.2 汇总报告 3.3聚合报告 3.4后端监听器 3.5汇总图 3.6 断言结果 3.7比较断言可视化器 3.8 生成概要结果 ...

  9. Jmeter 压力测试步骤详解

    目录 1.准备工作:安装 Jmeter 2.开始压力测试 (1)首先需要创建线程组 (2)创建 HTTP 请求 (3)添加察看结果树 (4)添加聚合报告 3.完整的测试步骤图示 Jmeter 压力测试 ...

最新文章

  1. Mysql高级调优篇——第四章:Sql实战调优场景剖析(下)
  2. web服务的搭建 windows server 2008
  3. .NET开发框架(四)-服务器IIS实践教程
  4. Luogu P1031 均分纸牌(贪心)
  5. 小米路由 php 服务器,小米路由器在后台不停访问小米服务器发送设备信息,继续分析发现不止如此,还......
  6. UVALive6336 HDU4450 Draw Something【水题】
  7. java基础代码实例_全网都在找的Python简单基础小程序的实例代码
  8. (转)iOS-蓝牙学习资源博文收集
  9. 专业测试工程师浅谈功能测试用例模板设计
  10. Pandas loc/iloc用法详解
  11. 树莓派C语言超声波传感器测距
  12. Latex——插入罗马字母或更改字体为公式体
  13. golang unshift
  14. 小程序获取用户openid,php获取微信小程序openid的方法
  15. 关于matlab好文推荐
  16. Vue对高德地图2.0的封装使用
  17. October 20th 2017 Week 42nd Friday
  18. 基于ESO的永磁同步电机无感FOC 采用线性扩张状态观测器(LESO)估计电机反电势,利用锁相环从反电势中提取位置和转速信息
  19. ESD9X5VU-2/TR瞬态电压抑制器WILLSEM ESD9X5VU 1线单向超低电容
  20. Thiago2(TPO AI.ROSTO):集成式AI换脸软件(Autodesk Flame)

热门文章

  1. 计算机网络协议栏图片,计算机网络与应用PPT.ppt
  2. farpoint使用
  3. java在哪一年面世_显示java时候
  4. 【Lecture 3.2】 从网络上请求信息
  5. 全新稳定体验 新浪页助升级在即
  6. “史上最抠门真人秀”之互联网大佬们在高速飙车!
  7. PerformanceRunner性能测试项目实战之PR的监控远程服务器设置(8)
  8. 淘特试用中心如何加入?有哪些好处?{全平台erp接口}
  9. 790leetcode多米诺和托米诺平铺
  10. 地质灾害安全监测预警解决方案