一、计算机网络TCP/IP模型
1.TCP和UDP协议的区别
a.基于连接与无连接;
b.对系统资源的要求(TCP较多,UDP少);
c.UDP程序结构较简单;
d.流模式与数据报模式 ;
e.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。 UDP (应用场景 IP电话,实时视频会议)
二、TCP中的三次握手和四次挥手
三次握手:
第一次握手,发送SYN包,然后进入SYN_SEND状态
第二次握手,发送ACK_SYN包,然后进入SYN_RCVD(接受)状态
第三次握手,A已进入ESTABLISHED(建立)状态
为什么需要三次握手?
三次握手的目的是建立可靠的通信信道,主要的目的就是**双方确认自己与对方的发送与接收机能正常**
四次挥手:
1. A与B交谈结束之后,A要结束此次会话,对B说:我要关闭连接了(seq=u,FIN=1)。(第一次挥手,A进入FIN_WAIT_1)
2. B收到A的消息后说:确认,你要关闭连接了。(seq=v,ack=u+1,ACK=1)(第二次挥手,B进入CLOSE_WAIT)
3. A收到B的确认后,等了一段时间,因为B可能还有话要对他说。(此时A进入FIN-WAIT-2)
4. B说完了他要说的话(只是可能还有话说)之后,对A说,我要关闭连接了。(seq=w, ack=u+1,FIN=1,ACK=1)(第三次挥手)
5. A收到B要结束连接的消息后说:已收到你要关闭连接的消息。(seq=u+1,ack=w+1,ACK=1)(第四次挥手,然后A进入CLOSED)
6. B收到A的确认后,也进入CLOSED。
为什么要四次挥手?
根本原因是,一方发送FIN只表示自己发完了所有要发的数据,但还允许对方继续把没发完的数据发过来
三、HTTP协议
1.TCP属于传输层,用于数据传输 http属于应用层,用于数据的封装
四、GET请求和POST请求的区别
* 数据的类型、大小是否有限制:GET请求有限制;POST请求没有
* 安全性:GET请求提交的数据都在URL中,可见,不安全;相对来说POST请求更加安全
* JS中获取参数上的区别:GET请求在JS中是通过```Request.QueryString["xxx"]```获取URL中的参数,而POST请求在JS中是通过```Request.Form["xxx"]```获取Form表单中的参数