进程是资源分配的单位
线程是操作系统调度的单位
进程切换需要的资源最大,效率很低 使用的资源有 空间,时间等
线程切换需要的资源一般,效率一般
协程切换任务资源很少,效率高
多进程,多线程根据cpu核数不一样可能是并行的,但是协程实在一个线程中,所以是并发。
在web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来,而浏览器和服务器之间的传输协议就是HTTP。
浏览器必有内容:GET / HTTP/1.1 . 表示get 从根路径开始 从服务器获取数据 上传数据用post 如密码 上传文件等 。connection:keep-alive 长链接 在HTTP/1.0中默认使用的是短链接,浏览器和服务器每进行一次HTTP操作,就建立一次链接,但任务结束就中断链接。如果客户端浏览器访问的某个HTML或其他类型的WEB网页中包含有其他的Web资源,如JavaScript文件,图像文件,CSS文件等;当浏览器每遇到这样一个Web资源,就会建立一个HTTP会话。 但从HTTP/1.1开始,默认使用长连接,用以保持连接特性,会在响应头加入Connection:keep-alive,在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。Keep-alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件中(如Apache)设定这个时间。实现长连接要客户端和服务端都支持长连接。HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。
服务器必有内容:HTTP/1.1 200 ok
deflate:是同事使用了LZ77算法与哈夫曼编码的一个无损数据压缩算法。
general:常规 普通的 综合的 200 ok ; 404 file is not defind
response hearders: 响应头部
request headers:请求头部
ACK--确认,使得确认有效
RST--重置连接
SYN--用于初始化一个连接的序列号
FIN--该报文的发送方已经结束向对方发送数据
三次握手能保证客户端,服务端双方都准备好资源来进行相关操作,在通信前进行连接,让双方都能明确自己和对方的收、发能力时正常的。第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论;客户端的发送能力、服务端的接收能力时正常的。第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:客户端的接收、发送能力,客户端的接收、发送能力时正常的。第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力,服务端的发送、接收能力是正常的。经过了三次握手过程,客户端和服务端都确认了自己的接收、发送能力是正常的,之后就可以通信了。 之所以这么做是因为每次都是接收到数据包的一方可以得出一些结论,发送的一方没有任何头绪。虽然有发包动作,但不知道发没发出去,也不知道对方有没有收受到。每次的接受可以得出对方的发送和我的接受是正常的。
四次挥手能保证双方都释放掉资源:一次挥手,客户端发送完数据后向服务端发送一个FIN数据包,申请断开,并且自身进入等待结束连接状态FIN_WAIT-1;二次挥手 服务端收到了来自客户端的FIN请求包后,向客户端回复一个确认报文ACK,同时进入关闭等待状态(CLOSE-WAIT),这时TCP连接的server便会向上层应用发送通知,表明客户端数据发送完毕,是否需要发送树蕨给客户端,这时TCP连接已经处于半关闭状态了,因为客户端已经没有数据要发送了。同时客户端收到了来自服务端的确认报文之后,便会进入FIN-WAIT-2状态。三次挥手 TCP连接的服务端收到上层应用的指令表明没有数据要发送之后,会向客户端发送一个FIN请求数据包,其中确认ACK=1,表明响应客户端的关闭连接请求,同时FIN=1表明服务端也准备好断开TCP连接了。四次挥手客户端收到了来自服务端的FIN数据包之后,知道服务端已经准备好断开连接了,于是向服务端发送了一个确认数据包ACK,告诉服务端,可以关闭资源断开连接了。同时自身进入TIME-WAIT阶段,这个阶段将持续2MSL(MSL:报文在网络链路中的最长生命时长),在等待2MSL之后,客户端将会关闭资源。服务端收到了来自与客户端的最后一盒确认断开连接数据包之后便会直接进入TCP关闭状态,进行资源的回收。
TCP是一种面向连接的协议,在发送数据前,通信双方必须在彼此之间建立一条连接。所谓的“连接”,其实是客户端和服务器的内存里保存的一份关于对方的信息,如ip地址、端口号等。在连接的建立过程中,双方需要交换一些连接的参数,这些参数可以放在TCP的头部。
TCP提供了一种可靠的、面向连接、字节流、传输层的服务,采用三次握手建立一个连接,采用四次挥手来关闭一个连接。一个完整的TCP连接时双向和对称的,数据可以在两个方向上平等的流动,给上层应用程序提供一种双工服务,这个链接的一个方向上的每个TCP报文段都包含了相反方向上的报文段的一个ACK
网友评论