• 面试必备:技术术语


    部分整理自网络,如有侵权,请联系删除。

    正向代理 & 反向代理

    正向代理:作为一个媒介将互联网上获取的资源返回给相关联的客户端,代理和客户端在一个局域网,对于服务端是透明的。

    反向代理:根据客户端的请求,从后端的服务器上获取资源,然后再将这些资源返回给客户端,代理和服务器在一个局域网,对客户端是透明的。

    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能处理些更加复杂的数据类型 

    http协议传输的都是字符串了,webservice则是包装成了更复杂的对象。 
    hessian类似于webservice,但是它采用的是二进制RPC协议(Binary),具有轻量、传输量小、平台无关的特点,特别适合于目前网络带宽比较小的手机网络应用项目。 
    以hessan的java实现为例,它可以传输Map、List、以及自定义的各种数据接口;比http的纯字符串也方便的多,省却了解析http返回值的步骤。
      

    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 根据这份“契约”去实现。

    参考:https://www.jianshu.com/p/e318fadf8553

  • 相关阅读:
    二十八 .Django中模型类中Meta元对象了解
    【POJ2376】Cleaning Shifts
    【CF600E】Lomsat gelral
    【hiho1035】自驾旅行III
    【模板】manachar
    【hiho1065】全图传送
    【洛谷P1450】硬币购物
    【HDU2204】Eddy's爱好
    【CF208E】Blood Cousins
    【CF451E】Devu and Flowers
  • 原文地址:https://www.cnblogs.com/uncleyong/p/11158806.html
Copyright © 2020-2023  润新知