网路通讯部分
TCP与UDP区别?
UDP:
a.将数据及源的封装成数据包中,不需要建立连接,因无连接,是不可靠协议,速度快
TCP:
a.建立连接,形成传输数据的通道.
b.以字节流方式,在连接中进行大数据量传输,
c.通过三次握手完成连接,是可靠协议
D.必须建立连接效率会稍低.聊天.网络视频会议就是UDP
说一下什么是Http协议?
客户端和服务器端之间数据传输的格式规范,格式简称为“超文本传输协议”。是一个基于请求与响应模式的.无状态的.应用层的协议,基于TCP的连接方式。
get与post请求区别?
区别1:
get重点在从服务器上获取资源,post重点在向服务器发送数据;
区别2:
get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用”?”连接,多个请求数据间用”&”连接,如http://127.0.0.1/Test/LogI
n.action?name=admin&password=admin,这个过程用户是可见的;
post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;
区别3:
Get传输的数据量小,因为受URL长度限制,但效率较高;
Post可以传输大量数据,所以上传文件时只能用Post方式;
区别4:
Get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等;
Post较get安全性较高;
区别5:
get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。
post支持标准字符集,可以正确传递中文字符。
http中重定向和请求转发的区别?
本质区别:转发是服务器行为,重定向是客户端行为。
重定向特点:两次请求,浏览器地址发生变化,可以访问自己web 之外的资源,传输的数据会丢失。
请求转发特点:一次请求,浏览器地址不变,访问的是自己本身的web 资源,传输的数据不会丢失。
Cookie 和 Session
Cookie 是 web 服务器发送给浏览器的一块信息,浏览器会在本地一个文件中给每个 web 服务器存储 cookie。以后浏览器再给特定的 web 服务器发送请求时,同时会发送所有为该服务器存储的 cookie。
Session 是存储在 web 服务器端的一块信息。session 对象存储特定用户会话所需的属性及配置信息。当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
Cookie 和 session 的不同点:
1.无论客户端做怎样的设置,session 都能够正常工作。当客户端禁用 cookie 时将无法使用 cookie。
2.在存储的数据量方面:session 能够存储任意的 java 对象,cookie 只能存储 String 类型的对象。
ajax 请求时,如何解释 json 数据?(了解)
使用eval() 或者 JSON.parse() 鉴于安全性考虑,推荐使用 JSON.parse()更靠谱,对数据的安全性更好.
阐述一下异步加载JS?(了解)
1.异步加载的方案: 动态插入 script 标签
2.通过 ajax 去获取 js 代码,然后通过 eval 执行
3.script 标签上添加 defer 或者 async 属性
4.创建并插入 iframe,让它异步执行 js
如何解决ajax 跨域问题?(了解)
跨域问题来源于JavaScript 的”同源策略”,即只有 协议+主机名+端口号 (如存在)相同,则允许相互访问。也就是说 JavaScript 只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对 JS 和 ajax 的,html 本身没有跨域问题。
跨域问题解决方案
1.响应头添加 Header 允许访问
跨域资源共享(CORS)Cross-Origin Resource Sharing
这个跨域访问的解决方案的安全基础是基于”JavaScript 无法控制该 HTTP 头”它需要通过目标域返回的 HTTP 头来授权是否允许跨域访问
具体如下:
response.addHeader(‘Access-Control-Allow-Origin:*’);//允许所有来源访问
response.addHeader(‘Access-Control-Allow-Method:POST,GET’);//允许访问的方式
2、jsonp (只支持 get 请求不支持 post 请求)
用法:
①dataType 改为 jsonp
②jsonp : “jsonpCallback”(发送到后端实际例子:
http://a.a.com/a/FromServlet?userName=644064&jsonpCallback=jQueryxxx)
③后端获取 get 请求中的 jsonpCallback
④构造回调结构
3、httpClient 内部转发
实现原理例子:若想在B 站点中通过 Ajax 访问 A 站点获取结果,固然有 ajax 跨域问题,但在 B 站点中访问 B 站点获取结果,不存在跨域问题,这种方式实际上是在 B 站点中 ajax 请求访问 B 站点的 HttpClient,再通过 HttpClient 转发请求获取 A 站点的数据结果。但这种方式产生了两次请求,效率低,但内部请求,抓包工具无法分析,安全
4、使用接口网关——nginx、springcloud zuul (互联网公司常规解决方案)
6.1.7 Ajax 的优势(了解)
通过异步模式,提升了用户体验。
优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用。
Ajax 引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。