部分整理自网络,如有侵权,请联系删除。
正向代理 & 反向代理
正向代理:作为一个媒介将互联网上获取的资源返回给相关联的客户端,代理和客户端在一个局域网,对于服务端是透明的。
反向代理:根据客户端的请求,从后端的服务器上获取资源,然后再将这些资源返回给客户端,代理和服务器在一个局域网,对客户端是透明的。
web服务器 & 应用服务器
进程 & 线程 & 协程
进程:
线程:
协程:
GET & POST
get,可以在浏览器中发请求
post,只能借助工具,比如postman、jmeter
1、GET使用URL或Cookie传参。而POST将数据放在BODY中(post请求也可以把数据放到url里面)。
2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
3、POST比GET安全,因为数据在地址栏上不可见(其实,通过抓包工具可以抓post请求的数据,所以,也不安全)。
4、一般get请求用来获取数据,post请求用来发送数据。
HTTP & HTTPS
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTPS和HTTP的区别主要如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
参考:https://www.cnblogs.com/zhenguoli/p/8622933.html
http和webservice接口
httpservice通过post和get得到你想要的东西
webservice就是使用soap协议得到你想要的东西,相比httpservice能处理些更加复杂的数据类型
http1.0和http1.1区别
1.0版本,http协议默认是无连接的,即一个http请求申请一个tcp连接,然后http连接断开时,tcp连接也跟着断开。又叫短连接。
1.1版本,http协议默认是长连接的,通过信息头:Connection:keep-alive来实现。效果就是,一个http请求在完成时,可以标注是keep-alive的,这样的话,底层的tcp连接不需要断开,可以供多个http连接使用。
rpc框架原理,和http区别
http响应慢、请求头大,所以在微服务时代,大家都使用rpc来调用服务。
tcp三次握手
参考:https://www.cnblogs.com/uncleyong/p/7611408.html
TCP & UDP
区别一:tcp是可靠的传输(发送方发一个数据,接收方收到数据后要回复确认信息,发送者才会把自己操作系统缓存中的数据清理掉,如果发送方没收到确认信息<接收者没回复确认信息>,就会从操作系统缓存中取出数据再发一次这个数据),udp是不可靠的传输
tcp先建立连接,
udp不建立连接(不需要建立双向连接),直接往目标地址发数据(也不需要管对方是否存在,不管对方是否收到,只管往外发),不需要收到对方的确认信息
区别二:传输效率:upd高(不需要建立连接,不需要确认,开销小),tpc低(要建立连接,需要对方确认,都有开销)
nio,bio,aio
https://www.jianshu.com/p/a660c17bb9ea
COOKIE & SESSION
1、存储位置不同
cookie的数据信息存放在客户端浏览器上。
session的数据信息存放在服务器上。
2、存储容量不同
单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie。
对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。
3、存储方式不同
cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。
session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。
4、隐私策略不同
cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。
session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。
5、有效期上不同
开发可以通过设置cookie的属性,达到使cookie长期有效的效果。
session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。
6、服务器压力不同
cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。
session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。
7、浏览器支持不同
假如客户端浏览器不支持cookie:
cookie是需要客户端浏览器支持的,假如客户端禁用了cookie,或者不支持cookie,则会话跟踪会失效。关于WAP上的应用,常规的cookie就派不上用场了。
运用session需要使用URL地址重写的方式。一切用到session程序的URL都要进行URL地址重写,否则session会话跟踪还会失效。
假如客户端支持cookie:
cookie既能够设为本浏览器窗口以及子窗口内有效,也能够设为一切窗口内有效。
session只能在本窗口以及子窗口内有效。
8、跨域支持上不同
cookie支持跨域名访问。
session不支持跨域名访问。
同步、异步、阻塞、非阻塞
1. 同步与异步针对的是函数/任务的调用方式:同步就是当一个进程发起一个函数(任务)调用的时候,一直等到函数(任务)完成,而进程继续处于激活状态。而异步情况下是当一个进程发起一个函数(任务)调用的时候,不会等函数返回,而是继续往下执行当,函数返回的时候通过状态、通知、事件等方式通知进程任务完成。
2. 阻塞与非阻塞针对的是进程或线程:阻塞是当请求不能满足的时候就将进程挂起,而非阻塞则不会阻塞当前进程
CI & CD
CI,就是持续集成(CONTINUOUS INTEGRATION)。
CD,持续交付(CONTINUOUS DELIVERY),既可以指代码持续交付,也可理解为代码持续部署。
参考:http://www.360doc.com/content/18/0903/11/19960613_783492490.shtml
契约测试
两个角色:消费者(Consumer)和 生产者(Provider)
一个思想:需求驱动(消费者驱动)
契约文件:由Consumer端和Provider端共同定义的规范,包含API路径,输入,输出。通常由Consumber生成。
实现原理:Consumer 端提供一个类似“契约”的东西(如json 文件,约定好request和response)交给Provider 端,告诉Provider 有什么需求,然后Provider 根据这份“契约”去实现。