首页 > 其他分享 >后端面试网络部分(一)

后端面试网络部分(一)

时间:2023-01-09 16:01:43浏览次数:31  
标签:请求 com 网络 面试 域名 DNS 服务器 部分 客户端

后端面试整合(一)

网络部分

1. OSI 的七层模型分别是?各自的功能是什么?

img

  • 物理层:底层数据传输,如网线;网卡标准。
  • 数据链路层:定义数据的基本格式,如何传输,如何标识;如网卡MAC地址。
  • 网络层:定义IP编址,定义路由功能;如不同设备的数据转发。
  • 传输层:端到端传输数据的基本功能;如 TCP、UDP。
  • 会话层:控制应用程序之间会话能力;如不同软件数据分发给不同软件。
  • 表示层:数据格式标识,基本压缩加密功能。
  • 应用层:各种应用软件,包括 Web 应用。

2. 状态码的作用及分类

状态码的职责是当客户端向服务端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务端是正常处理了请求还是出现了错误。

img

  • 100 继续发送(两次post发完头返回100继续发)
  • 200 成功
  • 204 No Content
  • 206 Partial Content
  • 301 永久性重定向,url已变更
  • 302临时重定向 希望用户(本次)能使用新的 URI 访问
  • 304 Not Modified 表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但未满足条件的情况
  • 400 Bad Request客户端请求错误(请求报文中存在语法错误)
  • 401 未授权 当浏览器初次接收到
  • 401 响应,会弹出认证用的对话窗口
  • 403 Forbidden权限不足
  • 404未找到
  • 500 内部错误
  • 502 Bad Gateway 网关无响应 从上游服务器接收到无效的响应
  • 503 Service Unavailable 该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
  • 504 Gateway Time-out 未从上游服务器接收到无效的响应

3. 说一下一次完整的HTTP请求过程包括哪些内容

  1. 浏览器进行DNS域名解析,得到对应的IP地址
  2. 根据这个IP,找到对应的服务器建立连接(三次握手)
  3. 建立TCP连接后发起HTTP请求(一个完整的http请求报文)
  4. 服务器响应HTTP请求,浏览器得到html代码(服务器如何响应)
  5. 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)
  6. 浏览器对页面进行渲染呈现给用户
  7. 服务器关闭TCP连接(四次挥手)

4. DNS是什么

官方解释 :DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)
通俗的讲:我们更习惯于记住一个网站的名字,比如www.baidu.com,而不是记住它的ip地址,比如:167.23.10.2。

5. DNS的工作原理

  1. 电脑先查询自身的本地DNS缓存,若未查到接着向下查询。
  2. 电脑客户端会发出一个 DNS 请求,问 www.baidu.com 的 IP 是啥啊,并发给本地域名服务器 (本地DNS)。那本地域名服务器 (本地 DNS) 是什么呢?如果是通过 DHCP 配置,本地 DNS 由你的网络服务商(ISP),如电信、移动等自动分配,它通常就在你网络服务商的某个机房。
  3. 本地 DNS 收到来自客户端的请求。你可以想象这台服务器上缓存了一张域名与之对应 IP 地址的大表格。如果能找到 www.baidu.com,它直接就返回 IP 地址。如果没有,本地 DNS 会去问它的根域名服务器。根域名服务器是最高层次的,全球共有 13 套。它不直接用于域名解析,但能指明一条道路。
  4. 根 DNS 收到来自本地 DNS 的请求,发现后缀是 .com,说:“哦, www.baidu.com 啊,这个域名是由.com 区域管理,我给你它的顶级域名服务器的地址,你去问问它吧。”
  5. 本地 DNS 转向问顶级域名服务器:“老二,你能告诉我 www.baidu.com 的 IP 地址吗?”顶级域名服务器就是大名鼎鼎的比如 .com、.net、 .org 这些一级域名,它负责管理二级域名,比如baidu.com,所以它能提供一条更清晰的方向。
  6. 顶级域名服务器会给你负责 www.baidu.com 区域的权威 DNS 服务器的地址,让你去那里问。
  7. 本地 DNS 转向问权威 DNS 服务器:“您好, www.baidu.com 对应的 IP 是啥呀?”baidu.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。
  8. 权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。
    本地 DNS 再将 IP 地址返回客户端,客户端和目标建立连接。

6. 为什么域名解析用UDP协议

因为UDP快啊!UDP的DNS协议只要一个请求、一个应答就好了。
而使用基于TCP的DNS协议要三次握手、发送数据以及应答、四次挥手,但是UDP协议传输内容不能超过512字节。
不过客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。

7. 为什么区域传送用TCP协议

  • TCP协议可靠性好
  • 从主DNS上复制内容啊,你用不可靠的UDP? 因为TCP协议传输的内容大啊,你用最大只能传512字节的UDP协议?万一同步的数据大于512字节,你怎么办?所以用TCP协议比较好!

8. DNS负载均衡是什么策略

当一个网站有足够多的用户的时候,假如每次请求的资源都位于同一台机器上面,那么这台机器随时可能会崩掉。
处理办法就是用DNS负载均衡技术,它的原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等。

9. DNS查询方式有哪些

  • 递归解析(由你去询问的服务器帮你查)
    当局部DNS服务器自己不能回答客户机的DNS查询时,它就需要向其他DNS服务器进行查询。此时有两种方式。局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询。最后得到的查询结果返回给局部DNS服务器,再由局部DNS服务器返回给客户端。
  • 迭代解析(你询问的服务器返回另一个服务器地址你自己去查)
    当局部DNS服务器自己不能回答客户机的DNS查询时,也可以通过迭代查询的方式进行解析。局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其他DNS服务器的IP地址返回给客户端DNS程序,客户端DNS程序再继续向这些DNS服务器进行查询,直到得到查询结果为止。也就是说,迭代解析只是帮你找到相关的服务器而已,而不会帮你去查。比如说:baidu.com的服务器ip地址在192.168.4.5这里,你自己去查吧,本人比较忙,只能帮你到这里了。

10. HTTP长连接和短连接的区别

  • 在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。
  • 而从HTTP/1.1起,默认使用长连接,用以保持连接特性。

11. 为什么服务器会缓存这一项功能?如何实现的?

原因

  • 缓解服务器压力;
  • 降低客户端获取资源的延迟:缓存通常位于内存中,读取缓存的速度更快。并且缓存服务器在地理位置上也有可能比源服务器来得近,例如浏览器缓存。
    实现方法
  • 让代理服务器进行缓存;
  • 让客户端浏览器进行缓存

12.http请求方法get和post的区别

get 和 post 是 HTTP请求的两种方式,都可实现将数据从浏览器向服务器发送带参数的请求。HTTP请求的底层协议都是 TCP/IP

get 用于获取资源,是默认的HTTP请求方法。不会修改服务器的数据,能被缓存,参数保留在浏览器历史中;

post 用于传输实体主体。能修改服务器上的数据,不饿能缓存,参数不会保存在浏览器历史中。

由于get提交的数据放在 URL 中,而post不会,所以get更不太安全。post也不安全,因为HTTP是明文传输,抓包可获取数据内容,要想安全还需要加密。

13.三次握手的过程

  1. 客户端请求建立连接,发送一个同步报文,和初始序列号 seq=x

  2. 服务端收到请求报文,发送同步确认报文(SYN=1, ACK=1),序列号 seq=y,确认号 ack=x+1

  3. 客户端收到服务端的确认后,发送一个确认报文(ACK=1),确认号 ack=y+1, 序列号 seq=y+1
    img

标签:请求,com,网络,面试,域名,DNS,服务器,部分,客户端
From: https://www.cnblogs.com/lazarus235/p/17037294.html

相关文章

  • 全景剖析阿里云容器网络数据链路(二):Terway EN
    作者:余凯本系列文章由余凯执笔创作,联合作者:阿里云容器服务谢石对本文亦有贡献前言近几年,企业基础设施云原生化的趋势越来越强烈,从最开始的IaaS化到现在的微服务化,客户的......
  • webERP的网络资源
       官方网址:​​www.weberp.org​      ​​http://weberp-accounting.1478800.n4.nabble.com/​​      ​​http://www.minghao.hk/bbs/thread.php......
  • 【卷积神经网络】01 卷积神经网络简介
    戳一戳!和我一起走进深度学习的世界导读深度学习发展已久,我们经常听到别人说神经网络,如果做计算机视觉,我们也会经常听到别人说卷积神经网络。今天要分享这篇文章带我们一起了......
  • 大数据面试杀招——Hive高频考点,就怕你都会!
       上一篇文章介绍了3道常见的SQL笔试题,反响还算是不错。于是乎,接下来的几天,菌哥将每天为大家分享一些关于大数据面试的杀招,祝小伙伴们都能早日找到合适的工作~一、什......
  • 网络运维实用小工具
    常用工具一:tcping.exe我们需要测试tcp端口,ping命令虽然好用,但​不能测试端口,因为ping基于ICMP协议,属于IP层协议,所以无法测试传输层的TCP/UDP端口。1、WIN+R按键,输入CMD打开......
  • Java面试题Day06
    1.如何将字节流转为字符流?InputStreamReader是字节流通向字符流的桥梁BufferedReaderin=newBufferedReader(newInputStreamReader(System.in))OutputStreamWriter......
  • 获取网络图片报错,url编码问题(url中含有中文)
    报错信息:java.io.IOException:ServerreturnedHTTPresponsecode:400forURL:http:// 错误:使用poi导出会议记录word,其中包含文字和图片,导出时图片无法显示。原因......
  • 222. 多重部分和问题(挑战程序设计竞赛)
    地址https://www.papamelon.com/problem/222有n种不同大小的数字a_i,每种各m_i个。判断是否可以从这些数字之中选出若干个并使得它们的和恰好为K输入第一行包含......
  • 从零开始学神经网络 2
    大家好,我是gdut本科生一枚,本文是我的学习笔记,内容来自目前正在学习的神经网络课程,内容部分来自csdn博客,视频来源于b站,如有侵权请联系我删除,谢谢。内容写的一般,希望这个博客......
  • Java面试的一些面试题
    ​10<<2=?tip:10的二进制为1010,左移两位即:101000,换算为十进制为2的5次方加上2的三次方等于40答:401.dr-xr-xr-r解释一下权限的含义tip:参考:Liunx学习总结(四)--文件的......