1.什么是MAC地址
答:MAC地址,也称为物理地址,用来定义网络设备的位置,他总共有48位,以十六进制表示,由两大块组成,IEEE分配给厂商地识别码和厂商内部定义地唯一识别码,MAC地址会被烧入进网卡中,每块网卡中,每块网卡的MAC地址在全世界都是唯一的,MAC地址应用在OSI参考模型中的数据链路层,通过MAC地址能够转发数据帧。
2.什么是IP地址
答:IP地址是指互联网协议地址,是为网络中的每台主机(例如计算机,路由器)分配的一个数字标签,IP地址应用在OSI参考模型中的网络层,保证确信的正常。常用的IP地址分为两大类:IPv4和IPv6.
IPv4由32位二进制数组成,但为了便于记忆,常以4段十进制数字表示,每组用点号(.)隔开,再IP地址后面常会带着一组以255开头的数字,称为子网掩码,用来标识IP地址所在的子网。IPv4的地址数量时有限的,而今互联网发展迅猛,资源迟早会枯竭,为了根本解决这个问题,IETF规划并制定了IPv6标准,IPv6有128位,分为8组,每组4个十六进制数,用冒号隔开。
3.在浏览器中,一个页面从输入URL到加载完成,有哪些步骤?
1.域名解析,根据域名找到服务器的IP地址
2.建立TCP连接,浏览器与服务器经过三次握手后连接。
3.浏览器发起HTTP请求,获取想要的资源。
4.服务器响应HTTP请求,返回指定的资源。
5.浏览器渲染页面,解析收到的HTML,CSS和JAVAScript文件。
4.GET和POST的区别有哪些?
1.语义不同,GET是获取数据,POST是提交数据
2.HTTP协议规定GET比POST安全,因为GET只做读取,不会改变服务器中的数据。但是这只是规范,并不能保证请求方法的实现也是安全的。
3.GET请求会把附加参数带在URL上,而POST请求会把提交数据放在报文内。在浏览器中,URL长度会被限制,所以GET请求能传递的数据有限,但HTTP协议其实并没有对其做限制,都是浏览器在控制。
4.HTTP协议规定GET是幂等的,而POST不是,所谓幂等是指多次请求返回相同的结果。实际应用中,并不会这么严格,当GET获取动态数据时,每次的结果可能会有所不同。
5.什么是RESTful API?如何设计RESTful API?
答:RESTful API是指符合REST设计风格的Web API。为了使得接口安全、易用、可维护以及可拓展,一般设计RESTful API需要考虑一下几个方面:
1.通信用HTTPS安全协议
2.在URL中加入版本号,例如“v1/animals”。
3.URL的路径不能有动词,只能用名词
4.用HTTP方法对资源进行增删改查的操作
5.用HTTP状态码传达执行结果和失败原因
6.为集合提供过滤、排序、分页等功能
7.用查询字符串或HTTP首部Accept进行内容协商,指定返回结果的数据格式。
8.及时更新文档,每个接口都有对应的说明。
6.TCP与UDP有哪些区别?
UDP是一种简单、不可靠的通信协议,只负责将数据发出,但不保证它们能否到达目的地。之所以不可靠是由于一下几个原因:
1.UDP没有顺序控制,所以当出现数据包乱序到达时,没有纠正功能。
2.UDP没有重传控制,所以当数据包丢失时,也不会重发。
3.UDP在通信开始时,不需要建立连接,结束时也不用断开连接。
4.UDP无法进行流量控制、拥塞控制等避免网络拥堵的机制。
UDP的包头长度不到TCP包头的一半,并且没有重发、连接等机制,故在传输速度上比起TCP又更大的优势,比较适合即时通信、信息量较小的通信和广播通信。TCP相当于打电话,UDP相当于写信,打电话需要先拨号建立连接,再挂电话断开连接;而写信只要把信丢入邮筒,就能送到指定地址。日常生活中的语音聊天和在线视频使用UDP作为传输协议的比较多,因为即使丢几个包,对结果也无太大影响。
7.HTTPS有哪些缺点?
1.通信两端都需要进行加密和解密,会消耗大量的CPU、内存等资源,增***务器的负载。
2.加密运算和多次握手降低了访问速度。
3.在开发阶段,加大了页面调试难度。由于信息都被加密了,所以用代理工具的话,需要先解密然后才能看到真实信息。
4.用HTTPS访问的页面,页面内的外部资源都得用HTTPS请求,包括脚本中的AJAX请求。
8.什么是运营商劫持?有什么办法预防?
答:运营商是指提供网络服务的ISP。运营商为了牟取经济利益。有时候会劫持用户的HTTP访问,最明显的特征就是在页面上植入广告,有些确实淫秽广告,非常影响界面体验和公司形象。为了避免被劫持,可以让服务器支持HTTPS协议,HTTPS传输的数据都被加密过了,运营商就无法再注入广告代码,这样页面就不会再被劫持。
9.HTTP/2.0比HTTP/1.1优秀许多,为什么没有马上取代?
答:将HTTP协议从1.1升级到2.0不可能一蹴而就,需要有个过程。先让服务器与客户端同时支持两个版本,再慢慢淘汰不支持新协议的设备,等到大部分设备都支持HTTP/2.0时,就能大范围地使用新协议了。