1.2 接口基础知识

1.2.1 接口的定义

      两个不同的系统或者一个系统中有两个不同的功能,它们之间相互连接的部分就称为接口。

      应用程序编程接口(全名:Application Programma Interface,简称:API)是一组定义、程序及协议的集合,API可实现计算机软件之间的相互通信。API的主要功能是提供通用功能集。程序员通过使用API函数开发应用程序,从而可以避免编写无用程序,减轻编程任务。

      前后端分离是近年来Web应用开发的一个发展趋势。这种模式具有以下优势:

      a.后端工程师不需要精通前端技术(如HTML、CSS、JS),只专注于数据的处理,对外提供API即可。

      b.前端工程师的专业性越来越强,其通过API获取数据,并专注于页面设计。

      c.前后端分离可扩大接口的应用范围,开发的接口可以应用到Web页面上,也可以应用到App上。

1.2.2 接口的分类

      依照所遵循的协议不同,常见的接口可以分为以下3类。

      a.HTTP 接口

      它是基于超文本传输协议开发的接口,但并不能排除没有使用其他协议。

      b.Web Server 接口

      它是系统对外的接口,比如你要从别的网站或服务器上获取资源,一般来说,别人不会把数据库共享给你,他们会提供一个写好的方法,让你用来获取数据,你是用他们写好的方法就能引用他们提供的接口,从而达到同步数据的目的。

      c.RESTful 接口

      简称REST,其描述了一个架构样式的网络系统,核心是面向资源。REST专门针对网络应用设计和开发方式,降低开发的复杂性,提高系统的可伸缩性。

1.2.3 HTTP协议

      HTTP的主要特点可以概括为以下几点。

      a.支持客户端/服务器模式。

      b.无连接。限制每次连接,使其只处理一个请求。服务器处理完客户端的请求,并收到客户端的应答后,即断开连接。采用这种方式可以节省传输时间。

      c.无状态。HTTP是无状态协议,无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则必须重新上传,这样可能导致每次连接传送的数据量增大,如果服务器不需要前面的信息,则应答就会比较快。

1.2.4 HTTP请求

      HTTP请求包含四个部分,分别是统一资源定位符、请求方法(Method)、请求头(Header)和请求体(Body)。

1、统一资源定位符

      统一资源定位符(Uniform Resource Locator)适用于完整地描述互联网上网页和其他资源地址的一种表示方法。URL给资源的位置提供一种抽象的表示方法,并用这种方法给资源定位。URL相当于文件名在网络范围的扩展。

      URL的一般形式为:

      <协议>://<主机>:<端口>/<路径>/<文件名>

      <协议> 指出获取该互联网资源所使用的的协议。HTTP请求使用的是HTTP协议,除此之外,还有文件传输协议(File Transfer Protocol,FTP)。

      在<协议>后面必须加  “ :// ” ,不能省略.

      <主机> 指出万维网文档是在哪一个主机上(可以给出域名,也可以给出IP地址)。

      在<主机>后面必须加  “ : ” ,不能省略.

      <端口> 为服务器监听的端口,HTTP默认为80端口,FTP默认为21端口。

      <路径>和<文件名>进一步给出资源在服务器上的位置,但是他们的名称是虚拟的,和服务器上的物理名称可能不同。

      对于动态页面,用户通常还需要给服务器提供访问动态网页的参数。因此,URL后面还可以跟上一个英文冒号,问号的后面以“ 参数名称 = 参数值 ”的形式给出多组参数,每一组参数之间用“ & ”分割,称之为查询串(Query String)。具体形式为

      <协议>://<主机>:<端口>/<路径>/<文件名>?<参数1>=<值1>&<参数2>=<值2>

      https://www.baidu.com/s?ie=UTF-8&wd=postman

2、Method

        HTTP定义了与服务器交互的不同方法(Method),基本方法有四种,分别是GET、POST、PUT和DELETE。可以这样理解:URL地址用户描述一个网络上的资源,而HTTP中的GET、POST、PUT和DELETE方法对应着这个方法的“查”、“改”、“增”、“删”操作,即GET一般用户获取、查询资源信息,而POST一般用户更新资源信息等。

      除上述四种方法以外,其他的方法在接口测试中遇到的概率很小,即便遇到了,也可以借助Postman工具构造出相应请求。

GET方法和POST方法有什么区别呢?

    a.提交数据的方式不同。

    b.传输数据的大小不同。

    c.安全性不同。

3、Header 和 Body

    HTTP报文是面向文本的。HTTP请求报文由4个部分组成,分别是:

                a. <request-line> 请求行;

                b. <headers> 请求头;

                c. <blank line> 空行;

                d. <request-body> 请求数据。

1.2.5 HTTP相应

        将HTTP请求发送到服务器后,服务器会给出相应的应答,服务器返回的应答消息成为HTTP响应。

1、HTTP响应报文

        HTTP响应报文同样也是由4个部分组成,与请求报文的格式非常相似,具体格式为:

                a. <status-line> 状态行;

                b. <headers> 消息报头;

                c. <blank line> 空行;

                d. <response-body> 响应正文。

        响应报文和请求报文的区别在于,第一行中用状态信息代替了请求信息。状态行通过提供一个状态码来说明所请求的资源情况。

        状态行格式为:HTTP - version Status - Code Reason-Phrase CRLF  ,其中:

                a. HTTP - version 表示服务器HTTP的版本;

                b. Status - Code 表示服务器返回的响应状态码;

                c. Reason-Phrase 表示状态码的文本描述;

                d. CRLF 表示一个回车符和换行符。

        状态码由3位数字组成,第一位数字定义了响应的列表,它有如下5种取值可能。

                a. 1 X X :指示信息,表示请求已接收,继续处理。

                b. 2 X X :成功,表示请求已被成功接收、理解和接受。

                c. 3 X X :重定向,要完成请求必须进行更进一步的操作。

                d. 4 X X :客户端错误,请求有语法错误或请求无法实现。

                e. 5 X X :服务端错误,服务器未能处理合法的请求。

        以下对常见的状态代码和状态描述进行说明。

                a. 200 OK:客户端请求成功。

                b. 400 Bad Request:客户端请求有语法错误,不能被服务端所理解。

                c. 401Unauthorized:请求未经授权。

                d. 403 Forbidden:服务器收到正确请求,但是拒绝提供服务。

                e. 404 Not Found:请求资源不存在,如输入了错误的URL。

                f. 500 Internal Server Error:服务器发生了不可预期的错误。

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

2、JSON

        a. JS对象标记的定义

        JS对象标记是一种轻量级的数据交换格式。它基于ECMAScript的子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的数据结构使得JSON成为理想的数据交换语言,其易于阅读和编写,同时也易于机器解析和生成,并能有效地提升网络传输效率。因此,HTTP接口响应一般为JSON格式。

        b. JSON语法规则

        JSON语法规则包括用大括号保存对象、用键值对表示对象、用逗号分割每个对象、用中括号保存数组。

        {"name":"michael","age":"23","gender":"male"}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353

推荐阅读更多精彩内容