【接口】HTTP/HTTPS - RestFul API
项目架构
常用与B/S 结构中,基于客户端浏览器/服务器
浏览器与服务器是怎么进行交互的?
用户在浏览器中输入要访问的网址,浏览器首先会将获取的域名地址,在本地缓存中进行查找。如果不存在,则会将域名发送给DNS服务器发起查询请求,以解析域名并获取对应的IP地址。DNS服务器会将对应的IP地址返回给浏览器,并且浏览器会将这个IP地址缓存起来,以便后续快速访问。获取到IP地址后,浏览器会使用该IP地址以及默认的HTTP或HTTPS端口(通常是80或443端口)与服务器建立TCP连接。在建立连接的过程中,浏览器和服务器会进行TCP三次握手,以确保连接的可靠性和稳定性。建立连接成功后,浏览器会将用户的请求发送给服务器。服务器接收后,会解析请求内容,包括请求的方法(如GET、POST等)、请求的URI、协议版本以及请求头等信息。根据请求内容执行相应的操作。例如:数据库、读取文件、执行程序等。服务器处理完请求后,会生成响应,并通过之前建立的TCP连接将响应发送回浏览器。HTTP响应中包含了状态码(如200表示成功)、响应头以及响应体(如HTML页面内容)等信息。客户端浏览器接收到对应的响应后,会解析响应内容。对于HTML页面,浏览器会进一步请求页面中的资源文件(如CSS、JavaScript、图片等),并下载这些资源。然后,浏览器会解析HTML代码,渲染页面,并最终将页面展示给用户。在页面渲染完成后,如果用户关闭了浏览器标签页或浏览器窗口,或者浏览器检测到连接已经空闲了一段时间,它会发送一个断开连接的请求给服务器。服务器收到断开连接的请求后,会进行TCP四次挥手过程,以优雅地关闭TCP连接,释放资源。
HTTP 与 HTTPS 区别
HTTP:数据以明文形式传输,容易被中间人攻击
安全性:
HTTP 协议 是不安全的通信协议,
HTTPS 协议 在HTTP的基础上加上SSL或者TSL 数据加密,用来保证数据的安全性和完整性,与身份验证
证书性:
HTTPS 使用CA证书来保证数据交互的安全性与完整性,CA证书用于验证SSL证书或TLS证书的有效性,而SSL和TLS协议则利用这些证书来建立客户端和服务器之间的安全连接
端口:
HTTP 80
HTTPS 443
请求
URL 组成
协议://IP地址:端口或者域名 /路径(资源的特定位置)?查询字符串
查询字符串: 用于向资源传递参数或数值。以? 开头,参数和数值使用键值对的形式进行,多个键值对之间用&分隔
https://www.example.com/search?q=URL+组成&page=1
片段标识符:页面内指向特定部分,如锚点。 片段标识符以#开头,后面跟着标识符
https://www.example.com/page#section1
请求类型
常见的有:
GET :查询资源,GET方法是安全的(不会改变服务器上的数据)、幂等的(多次请求同一资源返回相同的结果),且可以缓存。它主要用于从服务器获取数据。
Host User-Agent Authorization
POST:向服务器提交数据,请求服务器进行处理(如登录、提交表单等)。POST请求可能会改变服务器上的数据状态。POST请求不是幂等的,因为每次请求都可能导致新的资源被创建。
HEAD:类似于GET请求,返回的响应中只有报头
PUT:用于向指定URI位置的资源上传其最新内容。PUT请求是幂等的,这意味着多次使用相同的PUT请求发送相同的数据到相同的资源,资源的状态应该是相同的。PUT请求通常用于更新整个资源或创建资源(如果资源尚不存在)
DELETE:用于请求服务器删除指定的资源。DELETE请求是幂等的,意味着多次对同一资源的DELETE请求结果相同,即该资源应该被删除。
OPTIONS:运行客户端查看服务器性能
TRACE:回显服务器收到的请求,主要用于测试和诊断
CONNECT:预留给能够将连接换位管道方式的代理服务器
RestFul API 常用:
GET、POST、PUT、DELETE
GET 与POST 区别
get : 1、数据可见,存在安全隐患 2、参数一般跟着URL后,URL 数据大小限制, 3、GET请求通常被缓存,并且可能记录在服务器日志中,存在安全隐患 4、 GET请求由于其无状态性和数据可见性,容易遭受跨站请求伪造攻击
接口参数
响应
响应行、响应头、响应体
响应码
401:未经授权 ,检查token 或者cookies
浙公网安备 33010602011771号