一。
1.接口含义
接口,两个不同事物之间进行适配的一种工具、规范和协议。
一般分为:1)硬件接口:是指同一计算机不同功能层之间的通信规则称为接口。
2)软件接口:是指对协定进行定义的引用类型。
例子:
usb,键盘,鼠标(有线)硬件接口
api(application programming interface , 应用程序可编程接口),UI (user interface 用户接口, 用户界面)接口属于软件接口
2.网络请求
前端:由客户端、前端发起对应的请求。
服务端:后台服务器,被动接收请求。
常见的请求:http,websocket , webservice请求
3.HTTP请求,协议
1)请求:
包含:
--请求首行
--请求头 :headers, content-type, 数据格式,爬虫 user-agent: 限制请求的来源。, ip ban
--请求体
请求首行:
1.url, 域名地址,ip;
2.请求方法(GET,POST,PUT,DELETE,OPTION,HEAD);
3.远程 IP 地址;
4.协议版本
请求头:
你包裹上面的说明,你寄的是什么啊,多久到啊,价值多少啊。你这个请求的说明信息。
不需要每个都了解,但是如果某个收包裹的人(服务器)要求你必须带上指定的头信息,你就要带上,不然访问不成功。。。 比如很多退件的,会给你说明,不要到付,到付拒收!!
就算他没有说明,你到付,也不会有人收。。
- user-agent
- 用户代理
- 手机,浏览器, postman, jemter
- content-type : 请求数据格式
- cookie
- 会员卡
请求体:
你的包裹。 包裹可能是空的,你把一些信息直接放到包裹说明上,懒得拆了。 --》 我很好,不用担心。放到里面多麻烦,有风险。太容易被人看到了。
快递:勿忘我
域名和IP区别:
1.域名更好记忆(例如:大家都知道 ‘wwwbaidu.com’而不是它的ip:183.232.231.174)
2.域名需要映射ip地址
3.域名需要先进行 dns解析为 ip地址,才能进行请求。
2)http协议
超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的HTML文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
HTTPS协议
全称(HyperText Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。
SSL:全称(Secure Socket Layer,安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输安全。
其中:
HTTP的端口号为:80
HTTPS的端口号为:443
http请求过程:
http协议请求是基于TCP网络传输协议来实现的,首先会通过三次握手来建立连接进行数据传输,传输完毕后以四次挥手结束通信。因此http协议请求是无状态的。
输入url后,经历的过程:
a.域名解析,DNS解析 ---》IP地址(分层级);
b.发起TCP连接的三次握手,建立连接;
c.建立TCP连接后发起http请求;
d.服务端响应http请求,返回响应报文;
e.浏览器页面渲染,展示;
f.断开TCP连接,四次挥手。
tcp标识含义,详情参考:https://blog.csdn.net/zengrenyuan/article/details/80313449 :
ACK(acknowledgement 确认)
PSH(push传送)
FIN(finish结束)
RST(reset重置)
URG(urgent紧急)
SYN(synchronous建立联机)
Sequence Number(顺序号码)
Acknowledge Number(确认号码)
三次握手:
第一次握手:建立连接是,用户端向服务器发送请求报文(SYN)“我想建立连接”
第二次握手:服务器收到请求报文后,如果同意连接,则向客户端发送确认报文(SYN/ACK)“同意建立”
第三次握手:客户端收到服务端的确认后,再次向服务器发送确认报文,完成连接。(ACK)
三次握手含义:为了防止已经失效的请求报文字段发送给服务器,浪费资源。
四次挥手:
第一次挥手:客户端想分手,发送消息(FIN)给服务器
第二次挥手:服务器通知客户端已经接受的挥手请求,返回确认消息(ACK),但还没做好分手准备;
第三次挥手:服务器已经做好分手准备,通知客户端(FIN) ---》做好的分手准备:服务端需要确保需要给请求方的报文传输已完成。
第四次挥手:客户端发送消息给服务器(ACK),确认分手,服务器关闭连接。 ---》这里服务端在没有接到客户端确认消息会等待客户端 30秒,防止客户端连接失败,同时客户端若发送失败会一直发送请求。
http请求方法:
HTTP常用GET和POST两种请求方法,这两种方法的区别:
1.get是从服务器上获取数据,post事项服务器传送数据;
2.get请求参数是显示的,都会拼接在url上。get请求的参数是URL的一部分,可能会收到浏览器的长度限制;
3.post请求是在请求体中,消息的长度没有限制以隐藏的方式进行发送,通常用来向HTTP服务器提交 量比较大的数据(比如 请求中包含很多参数或者文件上传操作等),请求的参数类型包含在‘Content-Type’消息头里,指明该消息体的媒体类型和编码。
4.get方法入参只能使用 query string 入参方式,post可以使用bady:form /json ,query string入参方式。
4.响应
1)响应首行
- -协议版本号
- -响应的状态码。
--内部人员规定一种非常专业的信息格式,暗号。
常见状态码含义:
(一)
- Successful - 2xx:成功类,行为被成功地接受、理解和采纳
- - 200 OK
- 服务器成功返回用户请求的数据
- 往往为了简化处理
- POST创建成功后应该返回201的,创建
- 404 NOT FOUND
- 找不到资源
- 500 INTERNAL SERVER ERROR
- 服务器内部错误
- 最常见的原因是:服务器内部挂了
- 比如你传递参数中有些参数是空,而导致后台代码无法解析,出现异常而崩溃
(二)
- Successful - 2xx:成功类,行为被成功地接受、理解和采纳
- 201 CREATED
- 通过POST或PUT创建资源成功
- 204 NO CONTENT
- 资源修改成功,但是没有返回内容
- 常用于DELETE操作的返回
- Redirection - 3xx:重定向类,为了完成请求,必须进一步执行的动作
- 301 永久重定向
- 302 临时重定向
- 304 Not Modified
- Client Error - 4xx:客户端错误类,请求包含语法错误或者请求无法实现
- - 401 UNAUTHORIZED
- - 没有权限访问该资源
- 典型情况:用户没有登录,没有获得对应的access token而直接访问某资源
- 403 FORBIDDEN
- 禁止访问
- 典型情况:虽然用户已登录,但是去更新/删除需要更高权限才能操作的资源
- 405 METHOD NOT ALLOWED
- 方法不允许
- 举例:比如某个资源不允许POST请求,但是你确发起了POST请求
响应头:
- content-type, 返回数据的格式
- set-cookie: 服务器返回的cookie信息
响应体:
- 返回的数据
- json, text, html
5.Cookies,session,token
参考链接:https://www.cnblogs.com/moyand/p/9047978.html
Cookies:
是在HTTP协议下,服务器或脚本可以维护用户信息的一种方式。Cookie是由Web服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户访问到服务器,都会带上该服务器的cookie信息。
一般cookie都是有 有效期的,Cookie只在浏览器上保存一段规定的时间,一旦超过规定的时间,该Cookie 就会被系统清除。
Session:
session将数据存储在服务器中,服务器会为每一个用户创建一条session,用户访问服务器的时候需要拿着sessionid去表明自己的身份;
session的实现是基于Cookie,session需要借助于Cookie来储存sessionID。
Token:
token意思是‘令牌’,‘门票’是服务器端生成的一串字符串,作为客户端进行请求的一个标识。
session 与 token区别:
1.token是需要手动传到参数中的,session派发的session_id自动储存在浏览器的cookie当中,下次访问对应的网址时候,会自动带上。(这种说法也是不科学的token也是需要客户自己保存的)
2.session_id会存到服务器,需要消耗服务器资源,在浏览器中的session_id传输过来时需要查询,比较消耗服务器资源。
3.token不需要存储到服务器,服务器会解密 查看是否正确,消耗的是CPU的计算能力。
4.token 可以跨平台,跨域,session则不能。