1. TCP、UDP 区别
1.
TCP向上层提供面向连接的可靠服务 ,UDP向上层提供无连接不可靠服务。
2.虽然UDP并没有TCP传输来的准确,但是也能在很多实时性要求高的地方有所作为
3.对数据准确性要求高,速度可以相对较慢的,可以选用TCP
2. Http、Https区别
HTTP的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头HTTP标准端口是80 ,而 HTTPS 的标准端口是443在OSI网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层HTTP无法加密,而HTTPS 对传输的数据进行加密(HTTPS 是安全的)HTTP无需证书,而HTTPS 需要CA机构wosign的颁发的SSL证书
3. GET、POST区别
- GET在浏览器回退不会再次请求,POST会再次提交请求
- GET请求会被浏览器主动缓存,POST不会,要手动设置
- GET请求参数会被完整保留在浏览器历史记录里,POST中的参数不会
- GET请求在URL中传送的参数是有长度限制的,而POST没有限制
- GET参数通过URL传递,POST放在Request body中
- GET参数暴露在地址栏不安全,POST放在报文内部更安全
- GET一般用于查询信息,POST一般用于提交某种信息进行某些修改操作
- GET产生一个TCP数据包;POST产生两个TCP数据包
4. Http三次握手
第一步:客户端发送SYN报文到服务端发起握手,发送完之后客户端处于SYN_Send状态
第二步:服务端收到SYN报文之后回复SYN和ACK报文给客户端
第三步:客户端收到SYN和ACK,向服务端发送一个ACK报文,客户端转为established状态,此时服务端收到ACK报文后也处于established状态,此时双方已建立了连接
5. 同源策略
一个域下的js脚本未经允许的情况下, 不能访问另一个域下的内容。
判断跨域的依据是协议、 域名、 端口号是否相同, 不同则跨域。
6. 跨域通信的几种方式
jsonp(利用script标签没有跨域限制的漏洞实现。缺点:只支持GET请求)CORS(设置Access-Control-Allow-Origin:指定可访问资源的域名)postMessage(message, targetOrigin, [transfer])(HTML5新增API 用于多窗口消息、页面内嵌iframe消息传递),通过onmessage监听传递过来的数据Websocket是HTML5的一个持久化的协议,它实现了浏览器与服务器的全双工通信,同时也是跨域的一种解决方案。Node中间件代理Nginx反向代理- 注意:日常工作中用的最多的跨域方案是CORS和Nginx反向代理
7. 浏览器的本地存储?各自优劣如何?
浏览器的本地存储主要分为Cookie、WebStorage, 其中WebStorage又可以分为localStorage和sessionStorage。
共同点: 都是保存在浏览器端、且同源的
不同点:
cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。
存储大小限制也不同
cookie数据不能超过4K,sessionStorage和localStorage可以达到5M sessionStorage:仅在当前浏览器窗口关闭之前有效; localStorage:始终有效,窗口或浏览器关闭也一直保存,本地存储,因此用作持久数据; cookie:只在设置的cookie过期时间之前有效,即使窗口关闭或浏览器关闭
作用域不同
sessionStorage:不在不同的浏览器窗口中共享,即使是同一个页面; localstorage:在所有同源窗口中都是共享的;也就是说只要浏览器不关闭,数据仍然存在 cookie: 也是在所有同源窗口中都是共享的.也就是说只要浏览器不关闭,数据仍然存在
8. 从输入url到获取页面的完整过程
- DNS解析:将域名解析为ip地址
- 建立TCP连接: 客户端浏览器与WEB服务器建立TCP(传输控制协议)连接,三次握手【浏览器-->服务器,服务器-->浏览器,浏览器-->服务器】
- 发送请求:请求报文 http协议的通信内容
- 响应请求:响应报文
- 渲染页面:dom树、css树、合并渲染树计算布局 绘制;
- 断开连接: TCP四次挥手。【浏览器-->服务器,服务器-->浏览器,服务器-->浏览器,浏览器-->服务器】
http对应于应用层,Tcp协议对应于传输层,http协议是在Tcp协议之上建立的;