实现跨域的几种方式
1.jsonp动态加入《script》标签,但是只能是get方式
2.document.domain,设置顶级域名,子域名可访问
3.cors服务器拦截url并在header中增加信息
4.nginx反向代理
5.spring框架加注解可实现
四次挥手
1.客户端发送fin报文
2.服务器回复ack
3.服务器发送一个fin报文
4.客户端回复ack
三次握手
1.客户端发送syn报文
2.服务端收到syn+ack报文
3.客户端受到syn报文,回复ack
浏览器输入域名,回车一瞬间发生了什么 ( 一个http请求过程 )
1.DNS解析(DNS域名系统,解析域名获得ip)
2.发起tcp的三次握手
3.建立tcp连接后发起http请求
4.服务器响应http请求,浏览器得到html代码
5.浏览器解析html代码,并请求html代码中的资源
6.浏览器对页面渲染后呈现给用户
socket 协议
socket接口是tcp/ip网络的api,可以用他来开发tcp/ip网络上的程序
websocket协议
基于tcp协议,可以实现双向通信,使用ws或wss的统一资源标志符 websocket是持久连接的协议,而http是非持久连接的协议.
http1.0和http1.1的区别
1.长连接,1.0需要keep-alive参数才能与服务器建立长连接,而1.1默认支持长连接。维持长连接能提升性能,减少开销
2.分步发送,HTTP 1.1支持只发送header信息,当服务器返回100时,认为有权限,这时可以发送body,如果返回401表示没有权限,就不在发送body了,所以节约带宽。 还支持只传递文件的一部分内容,可以实现文件断点续传
3.http1.1支持host域
http1.1和http2.0的区别
1.多路复用。http2.0可以做到一个连接处理多个并发请求
2.http2.0支持对header进行压缩,所以传输效率更高
3.服务器推送,适合加载静态资源
滑动窗口机制
就是在发送一个包之后,不等待ACK号的返回,直接发送后续的一系列包。有效利用等待ACK号的这段时间
窗口大小:能够接收的最大数据量
IP头部的两个IP地址分别为:发送方网卡的IP地址;应用程序提供的接收方IP地址。
MAC头部的发送方和接受方的MAC地址分别是发送方网卡的MAC地址;利用ARP(地址解析协议)协议,根据接收方IP地址广播得到的接收方MAC地址。
tcp/ip协议 网络包的组成:
报头/起始帧分界符——MAC头部——IP头部——TCP头部——数据——FCS(帧校验序列)(根据tcp的封装)
TCP与UDP的区别
1、tcp面向连接,udp面向无连接
2、对系统资源的要求(TCP较多,UDP少);
3、UDP程序结构较简单;
4、流模式与数据报模式 ;
5、 TCP保证数据正确性和顺序(超时重传机制),UDP可能丢包
get和post的区别
1.get参数通过url传递,post放在request body中。
2.get请求在url中传递的参数是有长度限制的,而post没有。
3.get的参数在url中可见,不安全
4. get方式在浏览器中可以缓存和查看历史
5.GET方式的请求,浏览器会把header和data一并发送出去,服务器响应200(返回数据);
6.POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。(http1.1特性)
REST风格
1.url表示资源
2.用http方法来表示对资源的增删改查
3.安全性与幂等性(get,put,delete)
4.无状态(只需要知道url即可)
死锁发生的条件及解决方法
条件
(1)互斥
(2)占有且等待
(3)不可抢占
(4)循环等待
解决方法
(1)死锁预防
(2)合理分配资源
(3)银行家算法,找出安全序列