计算机网络面试题

1、HTTPS和HTTP的区别主要区别:


        https协议需要到ca申请证书,一般免费证书较少,因而需要—定费用。
http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

2、一个搜索框输入URL后按回车,发生了什么?
        浏览器查找域名的IP地址,查找途径有︰浏览器缓存,系统缓存,DNS缓存,DNS服务器。        http默认是80端口,https默认是443
        浏览器给web服务器发送—个HTTP请求
        服务器“处理”请求,可能是相应JSON也可能是模板语言会涉及模板渲染比如JSP服务器发回一个HTML响应
        浏览器开始显示HTML

3、get post请求区别

最直接的区别:
GET请求的参数是放在URL里的,POST请求参数是放在请求body里的;
GET请求的URL传参有长度限制(浏览器不同长度不同),而POST请求没有长度限制;
GET请求的参数只能是ASCII码,所以中文需要URL编码,而POST请求传参没有这个限制;

规范区别:

Get请求安全、幂等
.( 1)所谓安全意味着该操作用于获取信息而不是修改信息.换句话说,GET请求一股不应该产生副作用,也就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改、增加数据,不影响资源的状态
(2)所谓幂等意味着对同一个URL的多个请求应该返回相同的结果
2、根据HTTP规范,POST表示可能修改服务器上的资源的请求,比如一个新闻网站,读者对新闻资源发表的评论应该通过POST实现,因为在评论提交之后站点的资源已经不同了,或者说是资源被修改了
另外还有很重要的一点,从浏览器发起一次HTTP请求:
1、一些静态资源比如.css文件、js文件是很少发生变化的,让这些文件放在浏览器缓存里面,请求的时候从浏览器缓存里面拿这些资源而不去服务器上拿,可以有效地减轻服务端的压力,加快浏览器的访问速度。

而只有GET方式才能从缓存中存、取资源,POST方式则不可以。 而只有Get方式才能从缓存中存、取资源,POST方式则不可以。

TCP区别:
GET产生一个TCP数据包;POST产生两个TCP数据包

4、dns 用的什么协议
域名系统(英文:Domain Name System )是作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。DNS做域名解析用的udp(给客户端发送ip ),做区域传输用tcp(更新ip域名)

5、token使用
JWT ( Json Web Token )(更复杂的token xxx.XXXX.xXXx )token工作流程:
1客户端使用账户密码请求登录接口
2登录成功后返回JWT(token, token可以存在浏览器缓存里,我们原来有个vue的项目就是vuex的state状态里,this.$store.state.token)
3客户端再次请求其他接口时带上JWT(token),和服务器session里的token对比4服务端接收到JWT后验证签名的有效性

6、长连接和短连接的区别
http的长链接短链接实际是tcp的长连接和短连接。
长连接意味着进行一次数据传输后,不关闭连接,长期保持连通状态。如果两个应用程序之间有新的数据需要传输,则直接复用这个连接,无需再建立一个新的连接。它的优势是在多次通信中可以省去连接建立和关闭连接的开销,并且从总体上来看,进行多次数据传输的总耗时更少。缺点是需要花费额外的精力来保持这个连接一直是可用的,因为网络抖动、服务器故障等都会导致这个连接不可用,甚至是由于防火墙的原因。所以,一般我们会通过下面这几种方式来做“保活”工作,确保连接在被使用的时候是可用状态:
1.利用TCP自身的保活(Keepalive )机制来实现,保活机制会定时发送探测报文来识别对方是否可达。一般的默认定时间隔是2小时
2.上层应用主动的定时发送一个小数据包作为“心跳”,探测是否能成功送达到另外一端。保活功能大多数情况下用手服务端探测客户端的场景,一旦识别客户端不可达,则断开连接,缓解服务端压力。
短连接意味着每一次的数据传输都需要建立一个新的连接,用完再马上关闭它。下次再用的时候重新建立一个新的连接,如此反复。它的优势是由于每次使用的连接都是新建的,所以基本上只要能够建立连接,数据就大概率能送达到对方。并且哪怕这次传输出现异常也不用担心影响后续新的数据传输,因为届时又是一个新的连接。缺点是每个连接都需要经过三次握手和四次握手的过程,耗时大大增加。另外,短连接还有一个致命的缺点。一台计算机最多只能开启65535个端口,如果现在两个进程之间需要通信,作为服务端的IP和端口必然是固定的,因此单个客户端理论上最多只能与服务端同时建立65535不socket连接。如果除去操作系统和其它进程所占用的端口,实际还会更少。所以,一旦使用不当,在很短的时间内建立了大量连接,端口很容易被占用完。这不但会导致自身无法正常工作,述会影响到同一台计算机上的其它进程。

上一篇:Sort 函数的使用


下一篇:HDU 1429 胜利大逃亡(续)(bfs+状态压缩,很经典)