Python3学习笔记_接口基础一_20200604

Python3学习笔记_接口基础一_20200604

1、HTTP协议

#示例1:
http://www.keyou.site:8000/docs
www.keyou.site:8000—服务器地址
/docs-----------------接口地址
接口返回来的数据是json格式

什么是接口?
硬件接口:两个不同的硬件设备之间的连接
比如:USB接口、耳机接口
作用:连接功能,适配功能
软件接口:两个或多个软件之间的连接
内部接口:客户端与服务器的接口,用来实现客户端和服务器间的数据传递
外部接口:第三方登录、第三方支付【支付宝/微信】

用户界面:
UI–user interface—用户界面/用户接口
是一个接口吗?是一个接口,是一个软件接口
平时测的是api:
application programming interface
应用程序可编程接口
只是接口当中的一种

协议:
HTTP、ftp、ws、double

接口进行数据传输要遵循一定的协议,这个协议常用的就是HTTP协议

接口测试:
发送一个请求给服务器,然后服务器返回一个响应数据,然后对响应数据进行分析,
判断是否与我们预期的返回一致【是否遵守了协议】,从而验证功能是否正确
协议:
大协议:HTTP
小协议:接口文档

HTTPS:
HTTP的安全版,在HTTP下加入了SSL层
SSL:主要用于web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全
HTTP的默认端口号:80
HTTPS的默认端口号:443
邮件默认端口:25
加密的邮件默认端口:465

client-------request-----------》server
《-------response---------

client:浏览器、App程序

http://www.baidu.com:
http—协议
www.baidu.com–域名
/login—接口地址
?username=lemon—参数

2、HTTP请求信息

请求行:
    请求方法/请求网址/协议版本
请求头部:header
    host
    connection
    upgrade-insecure-requests
    user-agent:用户代理,通过客户端代理
    referer
    accept-encoding
    cookie
    备注:域名和IP地址之间是映射关系,域名是为了好记
请求数据:

3、HTTP响应信息:

状态行:
    状态码
消息报头:
    content-type:返回的数据格式
        test/html
        application/json
        application/xml
    响应正文:

4、http响应状态码
200:请求成功
201:资源创建成功

3XX:重定向
比如:登录成功跳转到首页
机制:在响应信息中设一个字段:location,这个字段值是你要连接到的地址,返回的状态码就是3XX
客户端接收到这个响应后,根据状态码会检查有没有location这个字段,有的话就跳转到对应的页面
301:永久转移新地址
302:临时转移新地址
304:缓存,重复请求,会检查有没有更新,没有更新就把原来的数据给你,避免资源的消耗

4XX:客户端错误,前端问题
400:不好的请求
401:需要登录,不登录就是401
403:页面被禁止访问
404:页面找不到
405:客户端请求中的方法被禁止

500:服务器内部错误【后端程序出错】
502:bad gateway,请求未完成,服务器从上游服务器收到一个无效的响应

5、HTTP请求方法:
GET:获取资源
POST:提交资源
PATCH:用于更新服务器的数据【局部更新】
DELETE:用于服务器删除指定的数据
PUT:用于更新服务器的数据【数据整体更新】
COPY
OPTIONS
HEAD
LINK
UNLINK
LOCK
UNLOCK

get和post的区别:
    应用场景不同:
        get获取资源
        post提交数据,创建新的数据/对已有数据的修改
    get请求的参数都可以显示在浏览器网址上,通过?param=value【即query string方式】查询字符串
    post可以使用query string,但是通常不这么做,通常放到body请求体当中

    安全性:
    get和post并没有谁更安全,抓包都是可以看到里面的数据,网上说的post更安全是因为数据放到了body当中,肉眼看不到而已,
    但其实也是不安全的,而get请求是直接在URL中肉眼可以看到

    备注:加密与请求方法没关系,什么东西都是可以加密的

6、鉴权、授权
鉴权:相当于给一个通行证
授权:鉴定是否有权限访问(判断有没有通行证)
cookie:存到客户端
session:存到服务端
token:令牌,凭证

作用:
        HTTP协议是典型的无状态协议,记不住,为了让客户端有状态,所以引入了cookie和session,记住用户
流程:
        发送请求,服务器会把登录的账号信息存起来,这个东西就是session,然后服务器返回响应的时候会设置个字段:set-cookie,
    这个字段值比如为sessionid或者是jsessionid,这个东西返回给客户端告诉客户端他是谁,然后客户端就将这个信息存到了他的
    cookie当中,存的东西就是服务端传过来的sessionid或者是jsessionid,这个sessionid或者是jsessionid会和域名或者是IP
    绑定到一起的,表示这个sessionid或者是jsessionid是属于这个域名的,第二次请求的时候,cookie会自动带上,服务器就会检查
    有没有sessionid或者是jsessionid,有的话就核对跟之前是不是一致,同时也会有过期时间或者是sessionid或者是jsessionid不对的
    情况,也是不能登录成功的
token:
    令牌,凭证
    访问其他的接口,必须有这个令牌才能访问
    token不需要存到服务器
    有了token为啥还要session,因为有的浏览器是不会存你的session的

token和session的区别:
    流程上的区别:
        第一次访问:
            session:存到服务器
            token:不需要存到服务器
        第二次访问:
            session:不需要手动的添加,请求的时候自动的就带上了
            token:需要手动的添加到请求上才能访问
    token不存到本地,直接解密:
        因为是一堆加密的数据,虽然他可以保存到本地,
        意味着服务器不需要消耗存储资源和查询资源
        消耗的是计算资源,用于解密,所以速度会快一点
        和域名没关系,不绑定

    session存到服务器:
        服务器需要消耗存储资源和查询资源,所以会慢一些
        和域名绑定关系

总结:
cookie:
1、cookie是在HTTP协议下,服务器或脚本可以维护用户信息的一种方式,cookie是由Web服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息,无论何时用户访问到服务器,都会带上该服务器的cookie信息

2、一般cookie都是有效期的,cookie只在浏览器上保存一段规定的时间,一旦超过规定的时间,该cookie就会被系统清除

session:
1、session将数据存储在服务器中,服务器会为每一个用户创建一条session,用户访问服务器的时候需要拿着sessionid去表明自己的身份

2、session的实现是基于cookie,session需要借助于cookie来存储sessionid

注意:cookie和session都是开发设置的,不要去想怎么设置,跟你没关系!!!!!

token:
1、token是需要手动传到参数当中的。session派发的sessionid自动存储在浏览器的cookie api.keyou.site/ 当中,在下次访问这个网站的时候,会自动带上

2、sessionid会存到服务器,需要消耗资源,在浏览器传输过来,要查询,也消耗资源

3、token不需要存储到服务器,服务器会解密,消耗CPU

4、 token可以跨平台,跨域

输入URL后的过程:
    a. 域名解析,DNS解析--》IP地址(分层级)
    b. 发起TCP连接的三次握手,建立连接
    c. 建立TCP连接后发起http请求
    d. 服务端响应http请求,返回响应报文
    e. 浏览器页面渲染,展示
    f. 断开TCP连接,四次挥手
三次握手四次挥手:
    第一次握手:建立连接时,客户端向服务端发送请求报文(SYN),'我想建立连接'
    第二次握手:服务器收到请求报文后,如同意连接,则向客户端发送确认报文(SYN/ACK),'同意建立'
    第三次握手:客户端收到服务器的确认后,再次向服务器发送确认报文,完成连接(ACK)

    三次握手主要是为了防止已经能失效的请求报文字段发送给服务器,浪费资源

    第一次挥手:客户端想分手,发送消息(FIN)给服务器
    第二次挥手:服务器通知客户端已经接受的挥手请求,返回确认消息(ACK),但还没做好分手准备
    第三次挥手:服务器已经做好分手准备,通知客户端(FIN)
    第四次挥手:客户端发送消息给服务器(ACK),确认分手,服务器关闭连接

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值