文章目录
ISO七层网络模型
五层网络模型
TCP/IP分层模型
TCP与UDP的区别
HTTP与HTTPS的区别
http分为:请求行(请求方法、URI、HTTP版本)、请求头(Date、Connection、Transfer-Encoding、Host、Accept、Accepte-Encoding、Location、Allow、Content-Type、Content=Length)、body体
常见请求方法:GET、POST、DELETE、PUT、OPTIONS
HTTP特点:无状态,基于请求和相应,通信使用明文,请求和相应不会对通信方进行确认,无法保证数据的完整性
HTTP1.1版本新特性:默认长连接,非阻塞,客户端可同时发出多个HTTP请求,断点续传
HTTPS是以安全为目标的HTTP通道,基于SSL协议
HTTP与HTTPS区别:
1、HTTPS需要申请证书,一般不是免费的,HTTP不需要
2、HTTPS是明文,HTTPS是经过SSL加密过后的传输协议
3、HTTP端口是80,HTTPS端口是443
4、HTTP无状态(数据包的发送、传输和接收都互不影响),HTTPS是HTTP+SSL加密船速协议,可进行加密传输、身份验证
HTTPS优点:保证数据发送到正确的服务器和客户机;安全
缺点:协商比较费时导致页面加载过慢,连接缓存不如HTTP高效
HTTP协议目的是规定客户端和服务端数据传输的格式和数据交互行为,并不负责数据传输的细节。底层是基于TCP实现的
长连接与短连接
短连接:一般只会在client/server间传递一次读写操作,就断开连接
长连接:在client/server完成一次读写之后,它们之间的连接并不会主动关闭,后续的读写操作会继续使用这个连接。
websocket与HTTP与socket
WebSocket与HTTP一样都是应用层的协议,但websocket是双向传输协议,建立在tcp之上
传输层控制三次握手
在WebSocket中,只需要服务器和浏览器通过HTTP协议进行一个握手的动作,然后单独建立一条TCP的通信通道进行数据的传送。
socket其实不是协议,是为了方便使用tcp、udp而抽象出来的一层,是位于传输层和应用层之间的一组接口
Socket是传输控制层协议,WebSocket是应用层协议。
当两台主机通信时,必须通过Socket连接,Socket则利用TCP/IP协议建立TCP连接。TCP连接则更依靠于底层的IP协议,IP协议的连接则依赖于链路层等更低层次。
PUT和POST的区别?
POST方法不是幂等的,PUT方法则有幂等性
幂等:在计算机中,一个幂等操作的特点就是其任意多次执行所产生的影响均与依次一次执行的影响相同。
比如:POST在请求的时候,服务器会每次都创建一个文件,但是在PUT方法的时候只是简单地更新,而不是去重新创建,因此PUT是幂等的。
同步与异步,阻塞与非阻塞
同步/异步主要针对client端(客户端),阻塞/非阻塞主要针对server端(服务器端)
同步:发送方发出数据后,等待接收方发回响应以后才发下一个数据包的通讯方式。
异步:发送方发出数据后,不等待接收方发回响应,接着发送下个数据包的通讯方式。
阻塞调用:是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。
非阻塞调用:指在不能立即得到结果之前,该函数不会阻塞当前线程,而会立即返回。