计算机网络基础知识面试准备(实时更新)

1.http的两种请求方式:get和post请求

   get:请求参数位于URL后面,可以被缓存下来,而且存在长度限制,由于浏览器的不同,长度也就不同,用于从指定资源请求数据,只能允许字符串,并且存在不安全性
    
   post:请求参数位于http消息主体里面,不能被缓存,没有长度限制,但是实际上是取决于服务器的处理程序的能力,向指定资源提交要被处理的数据,数据类型是没有限制,更加安全因为参数不会被缓存下来
    注意安全概念,get是因为用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么 别人就可以拿到你的账号和密码了
2.http和https请求

http超文本传输协议 ,数据未加密,明文传输,是不安全的,port = 80

https  http的安全版本,加入ssl层,数据加密传输,是安全的 , port = 443

他们的请求流程:
    1.客户端发起https请求
    2.服务端返回公钥和证书
    3.客户端验证证书,如果成功则通过公钥加密,生成一个随机的秘钥发送给服务端
    4.服务端使用秘钥解密,获取随机秘钥加密数据发给客户端
    5.客户端通过秘钥解密数据
3. TCP 三次握手,四次挥手
三次握手:是指建立一个TCP连接的时候,需要客户端和服务器总共发送3个包

    1.客户端发送链接请求(TCP的Synchronize Sequence Numbers标志位置1的包,来指明客户打算连接的服务器以及端口号,以及初始序列号,保存在包头的Seqence Number字段里)

    计算机网络基础知识面试准备(实时更新)_第1张图片
    2.第二次握手,服务器发回确认包ACK应答,即SYN和ACK标标志位都为1的同时,将确认序号(Acknowledgement Number)设值为客户的ISN + 1, 即 X + 1

    计算机网络基础知识面试准备(实时更新)_第2张图片
    3.第三次握手,客户端再次发挥ACK确认包,SYN标志位为0,ACK标志位为1,并且把服务器发来的ACK的序号字段 + 1 ,放在确定字段中发给对方,并且在数据段中放写ISN的 + 1 
        
    计算机网络基础知识面试准备(实时更新)_第3张图片
      4.服务器收到确认,并且进入ESTABLISHED

   关于为什么要三次握手,不能两次握手的回答:

   主要防止已经失效的请求报文突然又传送到服务器,从而产生错误

   客户端第一次发的报文因为网络延时没有到达,客户端进行重发

   第二次的报文到达服务端,服务端确认 ,突然延迟的报文右到达服务端

又会进行连接如果是三次那么服务端返回延迟报文后客户端已经发送请求了就不会再次发送确认了

四次挥手:TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作
    

 

你可能感兴趣的:(计算机网络)