计算机网络-应用层 -面试常见

在浏览器中输入url地址 ->> 显示主页的过程

1、浏览器查找域名的IP地址 使用DNS协议,进行DNS解析
2、客户端与服务器进行TCP连接
3、客户端也就是浏览器向web服务器发送http请求,这个过程中cookies会随着请求发送给服务器
4、服务器处理请求,并向客户端浏览器发回一个HTML响应
5、浏览器显示HTML
6、TCP连接结束

总体来说分为以下几个过程:

1、DNS解析
2、TCP连接
3、发送HTTP请求
4、服务器处理请求并返回HTTP报文
5、浏览器解析渲染页面
6、连接结束

打开一个网页,整个过程会使用哪些协议

1、DNS协议 获取域名对应的IP
2、TCP(面向对象连接的传输控制协议)协议使用TCP 客户端与服务器端建立TCP连接
3、IP协议:使用IP协议 建立TCP协议后 需要发送数据 ,发送的数据在网络层使用IP协议
4、OSPF(开放最短路径优先协议):使用OSPF(开放最短路径优先协议) IP数据报在路由器之间 路由选择使用OSPF协议
5、ARP(地址解析协议)使用ARP协议 路由器在与服务器通信时,需要将地址转换为MAC地址
6、HTTP(协议)使用HTTTP协议访问网页

各种协议与HTTP协议之间的关系

1、Http协议的职责
1)客户端发送向服务器端发送请求。生成针对目标web服务器的HTTP请求报文
2)服务器端对web服务器请求的内容进行处理 想要获取什么资源 请求的处理结果利用了TCP/IP通信协议向用户进行回传

2、TCP协议的职责
为了方便通信,将HTTP请求报文段分割成若干报文段,把每个报文段可靠的传给对方

3、IP协议的职责、
搜索对方的地址 一边中转 一边传送

状态码

1XX信息性状态码 接收的请求正在处理
2XX 成功状态码 请求正常处理完毕
3XX 重定向状态码 需要进行附加操作以完成请求
4XX 客户端错误状态码 服务器无法处理请求
5XX 服务器错误状态码 服务器处理请求出错

HTTP长连接、短连接

1、在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。

2、HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头加入这行代码:Connection:keep-alive

3、在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,

4、HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。

HTTP是不保存状态的协议,如何保存用户状态?

1、HTTP 是一种不保存状态的协议,即无状态(stateless)协议。

2、也就是说 HTTP 协议自身不对请求和响应之间的通信状态进行保存

3、使用Session会话控制机制保存用户状态,Session会通过服务端记录用户的状态。

4、典型的场景是购物车,当你要添加商品到购物车的时候,系统不知道是哪个用户操作的,因为HTTP协议是无状态的。服务端给特定的用户创建特定的 Session 之后就可以标识这个用户并且跟踪这个用户了(一般情况下,服务器会在一定时间内保存这个Session,过了时间限制,就会销毁这个Session)。

5、在服务端保存 Session 的方法很多,最常用的就是内存和数据库(比如是使用内存数据库redis保存)。既然 Session 存放在服务器端,那么我们如何实现 Session 跟踪呢?

6、大部分情况下,我们都是通过在 Cookie 中附加一个 Session ID 来方式来跟踪。

Cookie的作用是什么?和Session有什么区别?

1、Cookie和Session都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样。

2、Cookie 一般用来保存用户信息 比如:

1)我们在 Cookie 中保存已经登录过得用户信息,下次访问网站的时候页面可以自动帮你登录的一些基本信息给填了;
2)一般的网站都会有保持登录也就是说下次你再访问网站的时候就不需要重新登录了

3、Cookie 数据保存在客户端(浏览器端),Session数据保存在服务器端。

4、Cookie存储在客户端中,而Session存储在服务器上,相对来说Session 安全性更高。

HTTP 1.0和HTTP 1.1的主要区别是什么?

1、HTTP1.0最早在网页中使用是在1996年,
2、HTTP1.1在1999年才开始广泛应用于现在的各大浏览器网络请求中,同时HTTP1.1也是当前使用最为广泛的HTTP协议。 主要区别主要体现在:
2.1、长连接 : 在HTTP/1.0中,默认使用的是短连接,也就是说每次请求都要重新建立一次连接。
2.2、HTTP 是基于TCP/IP协议的,每一次建立或者断开连接都需要三次握手四次挥手的开销,如果每次请求都要这样的话,开销会比较大。因此最好能维持一个长连接,可以用个长连接来发多个请求。
3、HTTP 1.1起,默认使用长连接 ,默认开启Connection: keep-alive。 HTTP/1.1的持续连接有非流水线方式和流水线方式 。
流水线方式是客户在收到HTTP的响应报文之前就能接着发送新的请求报文
与之相对应的非流水线方式是客户在收到前一个响应后才能发送下一个请求。
4、错误状态响应码 :
在HTTP1.1中新增了24个错误状态响应码,
如409(Conflict)表示请求的资源与资源的当前状态发生冲突
410(Gone)表示服务器上的某个资源被永久性的删除。
5、缓存处理 :
1、在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,
2、HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。
6、带宽优化及网络连接的使用 :
1、HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能
2、HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。

URI和URL的区别是什么?

1、URI(Uniform Resource Identifier)是统一资源标志符,可以唯一标识一个资源。

2、URL(Uniform Resource Location) 是统一资源定位符,可以提供该资源的路径。它是一种具体的 URI,即URL可以用来标识一个资源,而且还指明了如何locate(定位)这个资源。

3、URI的作用像身份证号一样,URL的作用更像家庭住址一样。URL是一种具体的URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。

URI和URL的区别是什么?

1、端口 :HTTP的URL由“http://”起始且默认使用端口80,HTTPS的URL由“https://”起始且默认使用端口443。

2、安全性和资源消耗: HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS 运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以说,HTTP 安全性没有 HTTPS高,但是 HTTPS 比HTTP耗费更多服务器资源。

3、对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;

4、非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值