计算机网络|HTTP篇
高频面试题:※※※※※※
一. 从输入URL到页面展示到底发生了什么(浏览器输入网址后执行的过程)
1.浏览器查找域名的ip
DNS查找过程:去浏览器缓存,路由器缓存,DNS缓存查是否有该域名的ip信息
没有的话发送DNS请求去DNS服务器查找ip地址
2.和应用服务器通过三次握手建立连接
3.客户端发送http请求
4.服务器处理请求并返回HTTP资源
5.浏览器解析响应报文,渲染页面
6.通过tcp四次挥手关闭连接
二. HTTP为什么是无状态的
HTTP本身不保留与客户端之间的状态信息。每个HTTP请求都是独立的,服务器在处理请求时不会记住之前的通信状态
三. HTTP如何保存状态
使用Cookie:客户端接收到响应后,将该标识符保存在本地,并在之后的每个HTTP请求中都将该标识符作为Cookie发送给服务器
若Cookie被禁用
可以重写url每把sessionId添加在url路径后面
原理:用户第一次请求服务器的时候,服务器根据用户提交的相关信息,创建对应的 Session ,请求返回时将此 Session 的唯一标识信息 SessionID 返回给浏览器,浏览器接收到服务器返回的 SessionID 信息后,会将此信息存入到 Cookie 中,同时 Cookie 记录此 SessionID 属于哪个域名。
当用户第二次访问服务器的时候,请求会自动判断此域名下是否存在 Cookie 信息,如果存在自动将 Cookie 信息也发送给服务端,服务端会从 Cookie 中获取 SessionID,再根据 SessionID 查找对应的 Session 信息,如果没有找到说明用户没有登录或者登录失效,如果找到 Session 证明用户已经登录可执行后面操作。
服务器记录数据:session,redis,threadlocal等
四. HTTP长连接和短连接
1.HTTP/1.0中,默认为短连接。 每进行一次HTTP操作,就会建立一次连接,任务结束就终端连接。
2.HTTP/1.1中,默认使用长连接,响应头加入Connection:keep-alive
发起完HTTP请求后,并不关闭连接,当连接复用次数到一定次数,或者过了一定时间、或者客户端主动释放连接才会关闭连接。
五. HTTPS和HTTP的区别
1.HTTP:超文本传输协议
特点:无状态协议,数据通过明文传输,默认端口80
2.HTTPS协议
特点:HTTP的加强安全版本,数据使用密文传输,也是用TCP作为底层协议,额外使用SSL/TLS协议用作加密和安全认证,默认端口443
SSL/TLS:安全套接字协议,TLS是SSL的升级版
功能:提供身份认证,机密性和完整性服务,在传输层和应用层之间,对应用层是透明的,应用层将数据传给SSL层,再传给传输层
组成:握手协议:协商加密算法,mac算法,和会话密匙
记录协议:对交换的数据进行加密和签名
警报协议:解决问题
原理:0.浏览器建立连接请求
1.服务器回复SSL版本,并发送证书和公钥
2.浏览器将对称加密的钥匙,经过公钥加密后发给服务器
3.现在两端都有对称加密秘钥了
4.连接建立
5.连接中消息的发送使用对称加密的秘钥
六. HTTP1.0,1,1,2.0,3.0的区别和优化
中频面试题:※※※※
#我的实习求职记录##我的求职思考#
研二狗的八股文整理