接口
接口其实就是在服务器端定义的一堆函数或者方法的集合,接口调试其实就是在调用这堆函数或者方法。
由于接口是在两台电脑之间远程去调用这些方法,所以不能直接通过函数名来进行调用。不同电脑之间如果进行通讯,必须通过特定的网络协议来实现,所以接口调用必须借助于网络协议来进行调用。
网络协议
网络协议是通信计算机双方必须共同遵守的一组约定,如怎么样建立连接,怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它最终体现为在网络上传输数据包的格式
协议往往分成几个层次进行定义,分层定义时为了使某一层协议的改变不影响其他层次的协议
tcp/ip四层协议
osi模型 |
tcp/ip模型 |
||
第七层 |
应用层 |
application |
应用层 |
第六层 |
表示层 |
presentation |
|
第五层 |
会话层 |
session |
|
第四层 |
传输层 |
transport |
传输层 |
第三层 |
网络层 |
network |
Internet层 |
第二层 |
数据链路层 |
data link |
数据链路层 |
第一层 |
物理层 |
physical |
应用层:Telnet/ftp/http/smtp
传输层:UDP/TCP
网络层:ip、ICMP、ARP、RARD
数据链路层:网络接口及硬件层
http协议
http协议,称为超文本传输协议,是互联网上应用最为广泛的一种网络协议。是基于tcp/ip模型的应用层协议
超文本:不但可以传输文本数据,还可以传输音频、视频、超链接、图片等内容
url组成
http://www.baidu.com:80/adv_search?order=false&kw=py#tag
- 协议名称: http
- 请求域名:www.baidu.com
- 端口号:80
- 资源路径:adv_search
- 请求参数:order=false&kw=py
- 页面锚点:#tag
请求模型
http是由请求和响应构成,是个标准的客户端服务器模型
请求过程
一次http操作称为一个是事务
- 浏览器输入
- dns域名解析:域名与ip映射
- 建立tcp连接
- 发送http request:请求信息
- web服务器接收请求
- 应用服务器处理业务逻辑
- 关闭tcp连接:请求响应完成。如果浏览器在其头部信息中加入了connection:keep-alive,则tcp连接仍然保持打开状态
- 浏览器渲染响应内容
特性
- 无连接性:无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并受到客户的应答后,即断开连接,采用这种凡是可以节省传输时间。Keep-Alive 功能是客户端的连接特性持续有效,避免建立或者重新建立连接,当客户端发送另外一个请求时,就是用这条已经建立的连接
请求类型
- get:从服务器端获取资源或数据
- post:向服务端提交数据
- options:返回服务器针对特定资源所支持的http请求
- head:获取与get请求一致的响应头
- put:用来更新一个已有的实体。通过把已经存在的资源的id和新的实体用put请求上传到服务器来更新资源
- delete:从服务器上删除资源,需要把要删除的资源的id上传给服务器
- trace:回显服务器收到的请求,主要用于测试或诊断
get和post的区别
- get请求一般用于向服务器请求获取一个资源,没有副作用,一般在客户端做缓存。post请求一般用于向服务器提交数据并让其完成一件事,所以这个操作不会在客户端做缓存
- get请求发送数据的时候,一般会将请求数据放在url字符串中发送给服务器端,所以从安全性角度来看相对没有post请求安全性高,所以get请求一般不会用于比较隐私数据的传输。而p