80.forward和redirect的区别 答案:代表两种转发方式,直接转发和间接转发 直接转发forward客户端和浏览器只发出一次请求,由第二个信息资源响应该请求,在请求对象request中保存的对象对于每个信息资源是共享的. 间接转发,实际是两次http的请求,服务器端在响应第一次请求的时候,让浏览器在想另外一个url发出请求
81.tcp和udp的区别 答案:tcp是面向链接的,udp是无连接的 tcp可靠,udp不可靠 udp有较好的实时性 tcp是一对一udp支持一对一一堆多
83. 说一下 tcp 粘包是怎么产生的? 答案:发送方产生粘包 采用TCP协议传输数据的客户端与服务器经常是保持一个长连接的状态(一次连接发一次数据不存在粘包),双方在连接不断开的情况下,可以一直传输数据;但当发送的数据包过于的小时,那么TCP协议默认的会启用Nagle算法,将这些较小的数据包进行合并发送(缓冲区数据发送是一个堆压的过程);这个合并过程就是在发送缓冲区中进行的,也就是说数据发送出来它已经是粘包的状态了。 接收方产生粘包 接收方采用TCP协议接收数据时的过程是这样的:数据到底接收方,从网络模型的下方传递至传输层,传输层的TCP协议处理是将其放置接收缓冲区,然后由应用层来主动获取(C语言用recv、read等函数);这时会出现一个问题,就是我们在程序中调用的读取数据函数不能及时的把缓冲区中的数据拿出来,而下一个数据又到来并有一部分放入的缓冲区末尾,等我们读取数据时就是一个粘包。(放数据的速度 > 应用层拿数据速度)
84. OSI 的七层模型都有哪些? 答案: 应用层:网络服务与最终用户的一个接口。 表示层:数据的表示、安全、压缩。 会话层:建立、管理、终止会话。 传输层:定义传输数据的协议端口号,以及流控和差错校验。 网络层:进行逻辑地址寻址,实现不同网络之间的路径选择。 数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能。 物理层:建立、维护、断开物理连接。
85.get和post请求的区别 答案:get在浏览器退回时是无害的,post会再次提交 get产生的url地址可以被bookmark,post不会 get请求会被浏览器主次缓存,post不会 get请求只能进行url编码,post可以自定义编码 get请求参数会被保存在历史记录里post不会 get请求在浏览器中会有长度限制,post不会 get不安全,post比get更安全 get参数通过url传递post放在requestbody中
86.如何实现跨域 答案:https://www.cnblogs.com/chiangchou/p/jsonp.html
87.说一下 JSONP 实现原理? 答案:jsonp 即 json+padding,动态创建script标签,利用script标签的src属性可以获取任何域下的js脚本,通过这个特性(也可以说漏洞),服务器端不在返货json格式,而是返回一段调用某个函数的js代码,在src中进行了调用,这样实现了跨域。
