【接口测试】HTTP协议

接口测试基础-HTTP协议 HTTP协议简介 阅读详情

一、HTTP 协议基础

HTTP 简介

HTTP 是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通常是由客户端发起一个请求,创建一个到服务器的 TCP 连接,当服务器监听到客户端的请求时,便会向客户端返回一个状态和内容。如下图所示,便是客户端发起请求,服务端响应的一个简单过程。

HTTP 工作原理 

HTTP工作原理主要涉及客户端和服务器之间的交互。

  1. 当我们在浏览器中输入网址并回车后,浏览器会向服务器发送一个HTTP请求。这个请求由多个部分组成,包括请求行、头部和正文。请求行包含请求方法、请求URI和HTTP版本号,如GET、POST、PUT、DELETE等。请求URI指定了要访问的资源的位置。HTTP版本号表示请求所使用的HTTP协议版本。头部包含了一系列的键值对,用于向服务器传递一些请求信息。例如,Accept表示客户端可以接受的响应内容类型,User-Agent表示客户端的浏览器信息,Referer表示客户端从哪个页面跳转而来等等。正文是可选的,用于向服务器传递一些数据。例如,当客户端向服务器提交表单时,表单数据就可以放在请求的正文中。
  2. 服务器接收到请求消息后,根据请求消息的URL和相应的处理逻辑,生成服务器响应消息,并将其发送给客户端。响应消息中包含协议版本、状态码、响应头和响应体等信息。状态行包含HTTP版本号、状态码和状态短语。HTTP版本号表示响应所使用的HTTP协议版本。状态码是一个三位数字,用于表示服务器对请求的处理结果,如200表示成功、404表示未找到资源、500表示服务器内部错误等等。状态短语是对状态码的简短描述,例如200对应的状态短语是OK,404对应的状词短语是Not Found。头部包含了一系列的键值对,用于向客户端传递一些响应信息。例如,Content-Type表示响应内容的类型,Content-Length表示响应内容的长度,Set-Cookie表示服务器要求客户端保存一个Cookie等等。正文是响应的实际内容。例如,当客户端请求一个网页时,网页的HTML代码就可以放在响应的正文中。
HTTP 特点 

  1. 支持客户/服务器模式:HTTP协议支持客户/服务器模式,客户端向服务器发起请求并接收响应。
  2. 简单快速:HTTP协议简单且快速,客户端向服务器发送请求时只需传送请求方法和路径,响应也较为迅速。
  3. 灵活:HTTP允许传输任意类型的数据对象,具有灵活性,这意味着它不仅可以传输文本,还可以传输图片、音频、视频等非文本数据。
  4. 无连接:HTTP协议无连接,即限制每次连接只处理一个请求。服务器处理完客户的请求并收到客户端的应答后,即断开连接,以节省资源。
  5. 无状态:HTTP协议无状态,每个请求都是独立的,这意味着服务器不会保存之前和现在的请求和响应之间的关联。
HTTP 和 HTTPS

上面介绍 HTTP 的工作原理和特点,看起来是一个很不错的协议,但是 HTTP 也存在许多不足,特别是在安全方面。HTTP 通信使用明文传输,并且在通信中是不验证通信方的身份,也无法证明报文是完整的,因此使用 HTTP 通信有可能使内容被窃听,通信方身份被伪装,报文遭篡改。

HTTP 协议中是没有加密机制,但是可以和 SSL(Secure Socket Layer )或 TLS(Transport Layer Security)组合使用,从而加密 HTTP 的通信内容。即出现了 HTTPS。HTTPS 中的 S 可以理解为是 Secure,是以安全为目标的 HTTP 通道。大家可以这样理解 HTTPS = HTTP + 加密 + 认证 + 完整性保护。

细心的同学应该会发现,在一些大型网站,特别是银行、支付等网站使用的都是 HTTPS,因为它更安全。

二、HTTP 协议介绍

1.URL

URL:是互联网上标准资源的地址,一般称为统一资源定位符。
组成:协议 :// hostname[:port] / path / [? 查询参数1 & 查询参数2]

如:

2. HTTP协议

HTTP:超文本传输协议,基于请求与响应的应用层协议。
作用:规定了客户端与服务器之间信息传递规范,是二者共同遵守的协议。
组成:
  • HTTP请求:定义请求数据格式      请求行、请求头、请求体
  •  HTTP响应:定义响应数据格式     状态行、响应头、响应体

我们以瑞吉外卖项目为例,在登录界面发送了一个请求,按住F12进行调试:

1.请求行

位置:请求数据第一行
作用:说明请求方法、访问的资源、协议版本

请求行分为三个部分:请求方法、请求地址 URL 和 HTTP 协议版本,它们之间用空格分割。例如下图中的:POST /employee/login HTTP/1.1。

请求方法

HTTP/1.1 中定义的请求方法有 8 种,分别是 GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE。GET 和 POST 是最常见的两种请求方法。如果是 RESTFul 接口则是 GET、POST、DELETE、PUT。

GET:从服务器获取资源
POST:在服务器新建一个资源
PUT:在服务器更新资源
DELETE: 从服务器删除资源

协议版本

协议版本的格式为:协议名称/主版本号.次版本号,常见的有 HTTP/1.0 和 HTTP/1.1。

2.请求头

位置:请求数据第二行到空白行之间

作用:通知服务器客户端请求信息

特点:请求头部由键值对组成,每行一对
Content-Type:请求体数据类型
  • text/html:HTML格式
  • image/jpeg:jpg图片格式
  • application/json:JSON数据格式
  • application/x-www-form-urlencoded: 表单默认的提交数据格式
  • multipart/form-data:在表单中进行文件上传时使用

3.请求体

 

4.响应行 

位置:响应数据第一行
作用:描述服务器处理结果
内容: 状态行由协议版本号、状态码、状态消息组成

分为三个部分:HTTP 协议版本、状态码和状态码描述,它们之间用空格分割。例如 HTTP/1.1 200 OK。

  • HTTP 协议版本:与请求行中的协议版本一致,格式为:协议名称/主版本号.次版本号,常见的有 HTTP/1.0 和 HTTP/1.1。
  • 状态码:表示网页服务器超文本传输协议响应状态的 3 位数字代码。第一个数字代表当前响应的类型。例如 1xx 表示请求已经被服务器接收,需要继续处理。
  • 状态码描述:也叫状态描述,是对状态码的一个说明。
HTTP 常见响应码

我们经常会听到开发人员说,200、404、500 等数字,其实说的就是状态码。

HTTP 状态码(HTTP Status Code)由三个十进制的数字组成。状态码的第一个数字定义了状态码的类别,HTTP 状态码总共有五种类别,如下所示:

  • 1xx:信息。表示服务器接收到请求,需要继续处理。
  • 2xx:成功。请求已经被成功接收并处理。
  • 3xx:重定向。需要客户端采取进一步操作才能完成请求。
  • 4xx:客户端错误。客户端发送的请求有语法错误或者请求无法实现。
  • 5xx:服务端错误。服务器在处理请求的过程中发生了错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。

下面列举出一些常见的状态码:

状态码英文名描述
100Continue客户端应当继续发送请求
101Switching Protocols服务器根据客户端的请求切换协议
200OK请求成功。请求所希望的响应头或数据体将随此响应返回
203Accepted服务器已经接受请求,但未处理完成
204No Content服务器成功处理,但未返回内容
301Moved Permanently请求的资源已被永久的移动到新 URI,浏览器会自动定向到新 URI
305Use Proxy被请求的资源必须通过代理才能被访问
400Bad Request客户端请求的语法错误,服务器无法理解
401Unauthorized请求要求用户的身份认证
403Forbidden服务器理解请求,但是拒绝执行此请求
404Not Found请求失败,服务器上无法找到请求的资源
500Internal Server Error服务器内部错误,无法完成请求
503Service Unavailable由于超载或系统维护,服务器暂时无法处理客户端的请求
505HTTP Version not supported服务器不支持,或者拒绝支持请求中使用的 HTTP 协议的版本

 5.响应头

响应头部用来说明客户端需要使用的一些附加信息。与请求头部类似,包含若干个属性,每行一对,传递着固定的信息。格式为:属性名:属性值。下面列举一些响应头部内容。

响应头说明示例
Server服务器应用程序软件的名称和版本Server: Tengine
Date此消息被发送时的日期和时间Date: Tue, 15 Jun 2021 11:28:29 GMT
Content-Type当前文档的 MIME 类型Content-Type: text/html; charset=utf-8
Content-Encoding当前文档使用的编码方式Content-Encoding: br
Expires超过该时间则认为文档已经过期Expires: Fri, 01 Jan 1990 00:00:00 GMT

6.响应体

作用:服务器返回的数据实体

特点: 有图片、json、xml、html等多种类型

黑马程序员——接口测试——day01——接口测试理论、HTTP协议、接口测试流程、接口文档解析 简介:超文本传输协议,基于请求与响应的应用层协议。特点︰客户端、服务器模式简单快速灵活无连接无状态人力资源管理系统模块:员工管理组织架构(部门管理)招聘管理考勤管理绩效管理也叫API文档,一般由后端开发工程师编写。用来描述接口信息的文档。 阅读详情

相关推荐

学API接口测试,致富植发(一)HTTP协议

API(Application Programming Interface)应用程序编程接口,简称API / 接口。 1、接口 Windows是一个封装好的系统,按理用户无权操作。但它提供了一整套接口,我们可以调用接口对Windows系统进行一系列的操作。 接口的定义big big big,此处接口测试的接口特指基于网络协议的接口(客户端→服务端→客户端),而非编程语言对应库中...

maoxuexue的博客 1030

HTTP协议接口

HTTP数据包根据Http协议的要求,无论是客户端发起的请求,还是服务端返回的响应,传输的数据都是以数据包的形式进行通信。一个数据包可以分为两部分:头(header )和身体(body)

weixin_43421392的博客 1897

http与https协议-接口测试

什么是http协议 ​ http: 互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于葱www服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使用网络传输减少 ​ 超文本传输协议:是互联网上应用最为广泛的一种网络协议,所有的www文件都必须遵守这个标准,设计HTTP最初的目的是为了提供一种发布和接受html页面的方法 什么是https协议 ​ https:是以安全为目标的http通道,简单讲是http的安全版,即http+ssl/tls,https的安

weixin_54429979的博客 916

接口测试 —— HTTP协议概述!

HTTP协议、网络协议:网络协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。HTTP协议:HTTP协议(超文本传输协议)是一种网络通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。默认端口:80HTTPS协议:HTTPS协议是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。默

m0_58026506的博客 1021

一图详解!接口测试之HTTP协议与HTTPS协议的传输过程

在接口测试开发中,HTTP 和 HTTPS 协议是两种常见的网络协议,在接口传输中扮演着重要的角色。了解两种协议的传输过程,可以帮助我们更好地进行接口测试。主要体现在: 言简意赅,一言中的,最主要的可以 看图识字;

Free355的博客 975

黑马程序员-接口测试-四天学习接口测试,接口测试的概念,定义,类型,HTTP协议,URL格式,fiddler抓包验证,请求行,HTTP响应,传统风格接口,接口文档,

软件测试-黑马程序员

VAN 2120

Http协议详解

引入 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted ...

qq_42573271的博客 2398

SQLite学习——Dapper初识

dapper下载:https://www.nuget.org/packages/Dapper/1.40.0

jiDxiaohuo的博客 1298

接口测试之HTTP 协议讲解

HTTP 协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP 是万维网的数据通信的基础。客户端向服务端发送 HTTP 请求,服务端则会在响应中返回所请求的数据。了解了 HTTP 协议,才能对接口测试进行更深入的学习。

软件测试技术交流分享 252

lerobot VLA--SmolVLA代码的讲解

2.图像resize至正方形224x224,图像长宽比不变,其他区域用黑色补充,标记为mask=1,若占位图像(摄像头缺失),则 创建全-1像素的占位图像 标记为mask=0,image为[1, 3, 512, 512],img_mask为True,masks列表长度为2,img_masks为2,因为我这里两个相机。文本嵌入:通过embed_language_tokens() 被转换为嵌入表示,lang_emb 是语言的嵌入,包含了语言的语法和语义信息。1.像素值[0,1]->[-1,1]

caokaifa的博客 4067

ARMv8/ARMv9的TLB深度学习

千万不要人云亦云。一个TLB entry里有很多很多东西的,有100多个比特位呢,并不是仅仅只有VA/PA/nG/VMID/ASID等。.👉👉👉 个人博客笔记导读目录(全部) 👈👈👈。

baron-周贺贺-代码改变世界ctw 1569

HTTP协议和接口测试详解

较为详细的解释了什么是HTTP协议,例如其特点,图片例子,请求和相应,解释了什么是接口测试,如何进行接口测试,接口测试的特点和例子。

m0_57094953的博客 1212

从开票数据到 ML81N 一键过账:用 ABAP BAPI 批量创建 Service Entry Sheet 的落地方案

摘要:SAP ESM场景中,服务履约确认通常通过ML81N事务码创建服务条目表(SES)完成。本文介绍如何基于开票数据(VBRK/VBRP)自动生成SES:首先通过BAPI_PO_GETDETAIL获取采购订单服务行结构,然后使用BAPI_ENTRYSHEET_CREATE创建SES并覆盖开票数量与金额,最后调用BAPI_ENTRYSHEET_RELEASE自动释放。解决方案包含ALV交互界面、批量处理逻辑和结果跳转功能,实现从人工录入到自动化处理的转变。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 327

接口测试--接口基础概念、HTTP协议、接口测试风格、接口测试流程

接口:系统与系统之间,组件与组件之间实现数据交互、传递的通道 接口类型:硬件接口和软件接口 软件接口类型 按范围分 系统之间的接口 内部系统之间的交互; 外部系统之间的交互; 程序内部的接口 方法与方法之间; 函数与函数之间; 模块与模块之间 按协议分 http、tcp、ip 按语言分 C++,Java,php等 接口测试:对系统或者组件之间的接口进行测试,校验传递数据正确性和逻辑依赖关系的正确性。 接口测试...

m0_63409362的博客 1万+

HLA分型

HLA分型 一、根据WES的tumor数据进行数据分型 选用hlahd 软件安装及使用 [root@18605fd8771e ~]# wget https://jaist.dl.sourceforge.net/project/bowtie-bio/bowtie2/2.4.1/bowtie2-2.4.1-linux-x86_64.zip [root@18605fd8771e ~]# unzip bowtie2-2.4.1-linux-x86_64.zip && mv bowtie2-2.4.1

qq_23435961的博客 2489

C++实现设计ATM机系统

这个示例实现了一个基本的ATM机系统,支持注册、登录、存款、取款、查询余额和保存数据等功能。当然,这只是一个简单的ATM机模拟,实际的ATM机系统需要更复杂的逻辑和更严格的安全措施。C++编写一个简单的ATM机系统,我将提供一个基本的实现示例,但由于ATM机系统的复杂性和安全性要求,这只是一个简单的模拟,不适合在实际环境中使用。试设计一简单模拟ATM机系统,系统以菜单方式工作,采用自定义函数设计各功能模块被主菜单调用,使之能提供以下基本选项。=========欢迎使用ATM=========

走向CTO的路上... 1243

接口测试与HTTP协议

1,接口测试基础 1.1 接口 概念:指系统或组件之间的交互点,通过这些交互点可以实现数据的实现(数据交互的通道) 分类:硬件接口和软件接口,作为测试工程师,我们更应该关注软件接口 1.2 软件接口的类型 接口测试分为很多种,按范围划分:系统之间的接口和程序内部的接口 系统之间的接口:多个内部系统之间的交互,内部系统与外部...

weixin_50851485的博客 741

PD3.0详解 第十一章 策略层 电源协商(三)(sink端)

前面大师匈介绍了Source端的内容,今天再看一下sink端的内容。大师匈还是想把标准文件的状态机拿出来说一下。大师匈把一张图分成俩部分,大家凑合看一下,一张图实在看不清内容。 Sink 端电源协商状态机。基于sink端哦!!! 上图先!!! 上面俩张图就是整个SINK端口的状态机了。。。介绍一下这个流程: 1、收到hardreset或者刚上电的进入PE_SNK_Startup开始状态。 2、在PE_SNK_Startup阶段后进入PE_SNK_Discovery,并等待Vbus的到来。 3、当Vbus

大师匈的博客 4131

接口测试之HTTP协议详解

HTTP简介: HTTP协议(HyperText Transfer Protocol,超文本传输协议),是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 HTTP工作原理: HTTP协议工作于客户端-服务器(C/S)架构上。浏览器作为HTTP客户端通...

qiannuo_的博客 8845

Ubuntu零基础教学-史上最详Ubuntu20.04安装教程,超级详细,强烈建议收藏!

官网地址:https://www.vmware.com/ 1、VMware Workstation Pro 15.5.1在Windows 10的安装不再介绍了,一路下一步即可。 2、下面详细介绍在VMware 虚拟机里安装Ubuntu 20.04 LTS的步骤

**My Coding Family** 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

http协议与https协议做接口测试有什么区别?

很多测试人员都做过,但是聊到接口还是会不太清楚。:但凡要做接口测试,一定要懂网络协议。目前市场主流的1.1,Dubbo2,HTTP2.O(相对较少)

okcross0的博客 761

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

http接口测试:了解协议、请求方法、响应状态码

http接口测试:了解协议、请求方法、响应状态码 接口在各个系统间的重要性无需重申,主要体现在外部系统与系统之间以及内部各子系统之间的交互点。通过这些特定的交互点和一些特殊的规则标准(协议)来进行系统数据之间的交互,进而为了系统的安全性、稳定性以及系统异常处理能力等质量保证,接口测试显得尤为重要。 http接口测试:了解协议、请求方法、响应状态码1 接口的类型WebService接口Http ...

测试开发之路BeeTester 3602

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

接口测试-接口基础概念、RESTful风格和http协议

1.什么是接口测试? 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。------百度百科 2.接口分类 3.软件接口测试原理 通过测试程序模拟客户端向服务器发送请求,服务器对响应数据进行分析,判断是否与我们预期的返回一致,从而检验功能是否正确。那么客户...

迷路的小绅士之家 2327

HTTP协议中的GET和POST接口测试的区别

在进行接口测试时,了解不同的HTTP请求方法对于正确测试和评估接口功能至关重要。本文将探讨HTTP协议中GET和POST请求方法在接口测试中的区别以及它们的特点和应用场景。在HTTP协议中,GET和POST是常用的请求方法。GET请求用于获取资源和查询数据,参数在URL中可见,适用于读取操作;而POST请求用于提交数据和执行修改操作,参数在请求主体中,适用于写入操作。在接口测试中,需要注意它们的参数传递方式、可见性、数据长度限制和幂等性等方面的区别,以保证对接口功能的准确测试和评估。

努力是为了站在万人之中,成为别人的光 1万+

(接口测试)接口测试理论 http协议 接口测试基础知识 URL格式 http请求 http响应 接口规范 接口测试流程 接口文档 总结

接口:相当于开了一个通道 当服务器要给客户端响应数据的时候,还是会利用这个通道,将数据传递回去。上面的接口:提供数据的流入和流出。USB(文件通信协议)

2301_79144798的博客 851
上一篇: 【接口测试】测试基础
下一篇: 1.软件测试基础
热爱编程的小白白
热爱编程的小白白 新星计划导师 新星计划导师
博客等级 码龄5年 11万+粉丝 243原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱编程的小白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值