接口的构成

目录

接口

一、URL

二、请求方法

[三、请求报文(request message)](#三、请求报文(request message))

3.1请求行

3.2请求头

[3.3 请求体](#3.3 请求体)

[四、响应报文(response message)](#四、响应报文(response message))

4.1响应行

4.2响应头

4.3响应体


接口

接口就是API,是程序开发的函数和方法,提供参数和返回值;是由URL通过请求方法向服务器发送请求参数,得到响应值,本质就是数据的传输与接收;

一、URL

|------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
| URL(Uniform Resource Locator, 统一资源定位符) 协议**://** IP地址或域名**:端口号/** 路径**?参数1=值1&**参数2=值2 ||
| 协议 | http和https区别 * http(HyperText Transfer Protocol)超文本传输协议,明文传输,不安全;https协议是由ssl+http加密传输,比较安全; * https协议需要到CA申请证书,一般免费证书比较少; * http端口号80,https端口号443; |
| IP地址 | 服务器地址 |
| 端口号 | 默认80 |
| 路径 | 资源路径 |
| 接口参数 | |

二、请求方法

|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 请求方法 ||
| get获取数据 | get/post区别 * 本质 get从服务端获取资源 post创建、更新资源提交给服务端 * 传参方式 get通过url、requests headers,但不能通过request body传参 post通过url、request headers、request body传参(常见传参方式) * 缓存 get有缓存 post无缓存 |
| post提交数据 | get/post区别 * 本质 get从服务端获取资源 post创建、更新资源提交给服务端 * 传参方式 get通过url、requests headers,但不能通过request body传参 post通过url、request headers、request body传参(常见传参方式) * 缓存 get有缓存 post无缓存 |
| put更新资源 | get/post区别 * 本质 get从服务端获取资源 post创建、更新资源提交给服务端 * 传参方式 get通过url、requests headers,但不能通过request body传参 post通过url、request headers、request body传参(常见传参方式) * 缓存 get有缓存 post无缓存 |
| delete删除资源 | get/post区别 * 本质 get从服务端获取资源 post创建、更新资源提交给服务端 * 传参方式 get通过url、requests headers,但不能通过request body传参 post通过url、request headers、request body传参(常见传参方式) * 缓存 get有缓存 post无缓存 |

三、请求报文(request message)

HTTP请求报文组成:请求行、请求头、空行、请求体;

3.1请求行

GET http://www.abc.com/articles HTTP/1.1

方法 URL 协议版本

3.2请求头

请求头由键值对组成,每⾏⼀对,键值之间⽤英⽂冒号:进行分隔;

|-------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Accept(传输文件类型) | */* 代表浏览器可以处理所有类型 |
| **Accept- Encoding(**文件编解码格式) | |
| Accept-Language | 浏览器接受的语言 |
| Connection(链接类型) | keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接 |
| Connection(链接类型) | close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 客户端再次发送Request,需要重新建立TCP连接 |
| Content-Type | application/json JSON格式:{"key1":"value1","key2":"value2"} |
| Content-Type | application/x-www-form-urlencoded HTML表单格式:key1=value1&key2=value2 |
| Content-Type | text/xml:传输纯文本数据; |
| Content-Type | multipart/form-data:传输文件和二进制数据; |
| **Host(**主机和端口号) | |
| Referer(页面跳转处) | |
| **User-Agent(**浏览器名称) | |
| Cookie | cookie与session的区别: * cookie数据存放在客户的浏览器上,session数据放在服务器上、token是接口测试时鉴权码,一般情况下登陆后才可以获取到token,然后在每次请求接口时需要带上token参数; * cookie不是很安全,可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session; * session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能,考虑到减轻服务器性能方面,应当使用cookie; * 将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中; |

3.3 请求体

主要有两种格式 ,JSON格式和表单格式 ,它们的编码方式不同

四、响应报文(response message)

HTTP 响应报⽂的组成: 响应⾏、响应头、空⾏、响应体;

4.1响应行

HTTP/1.1 200 OK

协议版本 状态码 状态码原因短语

|------------------------|----------------------------------------------------------------------------------------------|
| 响应状态码汇总 ||
| 2XX ||
| 200 OK | 服务器已成功处理了请求 |
| 3XX ||
| 302 | 临时重定向;浏览器会自动向 location 返回的 url 发送请求,从而用户好像没有感觉到有这个重定向的存在,比如用户在未登录时访问个人中心页面,这时可以临时重定向到登录的url; |
| 4XX ||
| 400 | 缺少必要参数:客户端未提供必要的参数,导致服务器无法处理请求 参数格式不正确 |
| 401 | 鉴权认证失败,可以在请求头中附加 Authorization 认证信息或者是从前一个页面的响应中提取 cookie/token 等相关内容,再附加到新的请求中去 |
| 403 Forbidden | 检查URL是否正确; 检查当前角色是否有权限访问该资源; |
| 404 | 链接地址URL拼写错误 |
| 405 | 客户端使用了服务端不允许的HTTP请求方法,比如服务端只支持post方法,客户端使用get方法请求,则应返回405; |
| 415 | 请求的格式不受请求页面的支持,常见原因是请求数据的类型和服务端支持的类型不匹配,比如json接口,需要添加一个信息头Content-type:application/json; |
| 5XX ||
| 503 Server Unavailable | 服务器异常(超载或停机维护) |

4.2响应头

由键值对组成,每⾏⼀对,键值之间⽤英⽂冒号:进行分隔

|----------------------------------|--------------|
| Access-Control-Allow-Methods | 允许哪些方法来访问 |
| Access-Control-Allow-Credentials | 是否允许发送cookie |
| Content-Type | 数据类型 |
| Date | 时间 |
| Server | 服务器信息 |
| Connection | |

4.3响应体

响应体是一个整体,一般都是一个json体;

相关推荐
哈利巴多先生2 分钟前
HTTP,续~
网络·网络协议·http
白了个白i5 分钟前
http的访问过程或者访问页面会发生什么
网络·网络协议·http
@泽栖7 分钟前
阿里云-将旧服务器数据与配置完全迁移至新服务器
服务器·阿里云
ZHOUPUYU21 分钟前
Centos常用命令,按功能分类,用户和权限管理等
linux·运维·centos
赛德乌漆麻黑哟32 分钟前
FOFA--网络空间资产搜索引擎(常用语法以及拓展)
网络·安全·搜索引擎
vvw&39 分钟前
如何在 Ubuntu 22.04 上安装 phpMyAdmin
linux·运维·服务器·mysql·ubuntu·php·phpmyadmin
Allen_LVyingbo41 分钟前
数智化时代医院临床试验人才培养的创新路径与实践探索
网络·健康医疗·集成学习
手心里的白日梦1 小时前
TCP协议
服务器·网络·tcp/ip
Hacker_Oldv1 小时前
iptables网络安全服务详细使用
网络·安全·web安全
云计算DevOps-韩老师1 小时前
【网络云计算】2024第52周-每日【2024/12/25】小测-理论&实操-自己构造场景,写5个系统管理的脚本-解析
开发语言·网络·云计算·bash·perl