美文网首页
HTTP接口相关知识

HTTP接口相关知识

作者: Ssaffron | 来源:发表于2021-05-17 11:48 被阅读0次

    日常工作中我接触到最多的是HTTP接口,这篇文章专门讲下HTTP接口的相关知识

    1、什么是HTTP接口

    HTTP 接口是基于HTTP协议的开发接口

    2、什么是网络协议

    网络协议是计算机之间为了实现网络通信而达成的一种约定,不同厂商生产设备,不同操作系统组成的计算机,都按照此约定的协议生产,这样就实现了通信

    3、什么是HTTP协议

    HTTP协议,英文:Hyper Text Transfer Protocol,翻译为超文本传输协议,是从web服务器传输超文本标记语言(HTML)到本地浏览器的传送协议

    HTTP协议是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML 文件,图片文件、查询结果等

    HTTP协议一般用于B/S架构。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求(Request),WEB服务器会通过请求给到对应的响应(Response)

    4、请求(Request)

    请求是我们发送给接口的数据对象,包含接口地址(URL),请求方法,参数,请求头(Headers), Cookies, 数据等

    请求(Request)之常见请求方法

    GET:请求指定的页面信息,并返回实体主体

    POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改

    HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

    PUT:从客户端向服务器传送的数据取代指定的文档的内容。

    DELETE:请求服务器删除指定的页面

    请求(Request)之请求方式中POST和GET的区别

    都包含请求头请求行,POST比GET多了请求body

    GET多用来查询,请求参数放在URL中,不会对服务器上的内容产生作用。POST用来提交,如把账号密码放入body中

    GET是直接添加到URL后面的,直接就可以在URL中看到内容,而POST是放在报文内部的,用户无法直接看到。

    GET提交的数据长度是有限制的,因为URL长度有限制,具体的长度限制视浏览器而定。而POST中URL的长度没有限制

    请求(Request)之请求头(Headers)

    Connection:表示是否需要持久连接,HTTP1.1默认进行持久连接。keepalive、close

    User-Agent:发出请求的用户信息

    Host:请求服务器的域名和端口号

    Cookie:传递cookie信息给服务器

    请求(Request)之Cookie和Session

    **Cookie/Cookies: **是指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。

    Session:服务端为客户端访问所建立和维持的会话,通常会生成一个唯一的id,会话有一定的有效期

    cookie:保存在客户端,数据不超过4kb,只能用ASCii字符串,同源页面共享。一般用于记住用户登录状况,用户习惯,购物车等

    session:存在服务端,数据大小5m或更大,存储任何类型数据,不同浏览器不同窗口不共享。用来登录验证

    5、响应(Response)

    接口返回的信息,包含HTTP状态码,响应头和响应信息

    原始相应数据(Raw格式,Fiddler抓包)

    常见的响应格式:html、json、xml

    响应(Response)之状态码

    状态码分类

    1XX- 信息型,服务器收到请求,需要请求者继续操作。

    2XX- 成功型,请求成功收到,理解并处理。

    3XX - 重定向,需要进一步的操作以完成请求。

    4XX - 客户端错误,请求包含语法错误或无法完成请求。

    5XX - 服务器错误,服务器在处理请求的过程中发生了错误。

    常见状态码

    200 OK - 客户端请求成功

    301 - 资源(网页等)被永久转移到其它URL

    302 - 临时跳转

    400 Bad Request - 客户端请求有语法错误,不能被服务器所理解

    401 Unauthorized - 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

    404 - 请求资源不存在,可能是输入了错误的URL

    500 - 服务器内部发生了不可预期的错误

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

    6、另一个协议HTTPS

    HTTP访问的账号密码都是明文传输, 这样客户端发出的请求很容易被不法分子截取利用,因此,HTTP协议不适合传输一些敏感信息,比如:各种账号、密码等信息,使用http协议传输隐私信息非常不安全

    为了解决HTTP存在的问题,就用到了HTTPS

    HTTPS 协议:HyperText Transfer Protocol over Secure Socket Layer,HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。

    SSL是什么?

    SSL(Secure Socket Layer,安全套接字层):SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。

    7、总结HTTPS和HTTP的区别

    安全性:HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。

    证书:使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。

    响应速度:HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。

    连接端口:HTTP 和 HTTPS  使用的是完全不同的连接方式,用的端口也不一样,HTTP 是 80,HTTPS 是 443。

    服务器资源:HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源

    相关文章

      网友评论

          本文标题:HTTP接口相关知识

          本文链接:https://www.haomeiwen.com/subject/cbzdjltx.html