1.GET请求和Post请求的区别
a. http报文层面:GET请求将请求参数存放在url中以键值对的方式存在,而Post请求将请求参数存放在请求报文中及请求体中,相对于GET请求相对安全,但可以通过抓包获取到参数,所以也不是绝对安全的
b. 数据库层面:GET请求符合幂等性和安全性,而Post请求则不然
c. 其他方面:GET请求可以被缓存、存储,而Post请求则不行
2.tcp3次握手及4次挥手
2.1 3次握手
作用:创建连接
第一次握手:客户端向服务端发送请求,请求数据包会生成一个序列号(seq=k)
第二次握手:服务端接收到客户端发送的请求,及请求数据包生成ack(k+1),切生成一个序列号(seq=y)来响应,响应数据包为ack+seq格式
第三次握手:客户端接收到响应的ack+seq格式的数据包,切发送请求数据包,其中ack(y+1),seq(k+1),请求发送完成三次握手结束,连接建立
2.2 4次挥手
作用:断开连接
第一次挥手:客户端给服务端发送fin数据包,服务端接收到消息后进入关闭等待状态
第二次挥手: 服务端给客服端响应ack(请求seq+1),告知客户端以进入关闭等待状态
第三次挥手:服务端给客户端发送fin数据包,并生成一个新的序列号
第四次挥手:客户端接收到服务端发送的请求,并响应给服务端ack(前序列号+1),服务端接收到消息则关闭连接
最后:四次挥手结束,客户端在2分钟之内关闭连接,及断开连接完成(2分钟时间用来防止接收到的消息混乱)
3.浏览器访问url需要经过哪些过程
a. DNS解析ip
b. tcp协议通过3次握手建立连接
c. 浏览器发送http请求
d. 服务器响应给浏览器请求结果
e. 浏览器渲染结果
f. tcp协议通过4次挥手断开连接
4.cookie和session的区别
a. cookie是浏览器和服务器交互过程中的特殊消息体,存放在浏览器中,通过cookie即可实现网站登录的记住密码功能
b. session首先存放在服务端,由session来完成浏览器与客户端的会话,一般将session id 存储在cookie中,cookie来实现,如果禁用cookie则session也会无法使用
c. cookie相比session不安全,考虑安全性则可以使用session,同时session存放在服务端,大量的session会给服务器造成高额压力,考虑服务器负荷压力问题可以使用cookie