春招面试突击——网络篇

感觉要来不及了。。这里就按照常考知识点进行突击。。死马当活马医了。。

问题一:http和https的区别是什么?

  • http协议是不安全的,其消息包是以明文的形式暴露在外面的;而https是安全的,其实是ssl协议+http协议,会对传输的消息报进行加密;
  • http协议的监听端口是80,而https是443

问题二:什么是Http协议无状态协议?怎么解决Http协议无状态协议?

  • 无状态协议对于事务处理没有记忆能力。
  • 使用cookie可以解决无状态带来的问题,当用户初次访问服务器或其之前获取的cookie超时失效的时候,服务器端会为其分配一个cookie用于身份的标示和信息的记录,当在服务端发现了客户端携带的cookie,那么就能够认识这次访问的用户了。

问题三:一次完整的HTTP请求所经历的步骤

  • 建立tcp连接(三次握手说一遍)
  • 浏览器发送请求报文,包括请求头和请求体,中间由一个空行隔开
  • 服务器发送响应报文,包括响应头和响应体,中间由一个空行隔开
  • 如果响应报文的参数有keep-alive的话,表示是长链接,将不会断开tcp连接。否则的话就断开tcp。这节省了tcp建立的时间开销和带宽的开销

问题四:常见的HTTP相应状态码

  • 2开头的表示正常接受到报文,200是正常。
  • 3开头的是重定向相关
  • 4开头的是浏览器发送的请求有问题,例如404找不到资源
  • 5开头的是服务器那边出问题了,例如500是内部错误,503是服务器正忙。

问题五:HTTP1.1版本新特性

  • 默认长链接
  • 管线化:
    • 客户端可以同时发送多个HTTP请求,而不用一个个等待响应
  • 支持断点续传
    • HTTP1.1协议中定义了断点续传相关的属性,如Accept-Range, Range和Content-Range:
      • Accept-Range记录是否支持断点续传
      • Range表示请求的数据范围 例如 Range : 开始字节位置-结束字节位置
      • Content-Range:是响应体里表示的,真正返回的字节范围;

问题六:输入url后发生了什么?

问题七:OSI七层模型每一层的意思?

  • 物理层:

物理层解决的问题就是比特流的传输。就是将01比特用电信号的强弱来替代,接收方用同样的方式进行解码得到传输的比特, 也就是模数转换和数模转换. 网卡就是工作在这一层上的。最小传输单位为比特.

  • 数据链路层:

    • 封装成帧。将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。交换机就处在这一层,最小的传输单位——帧。MAC 地址是链路层地址。
    • 透明传输。透明表示一个实际存在的事物看起来好像不存在一样。帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
    • 差错检测。数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。
  • 网络层:

    • 随着通信设备的增加,点对点通信会经过多个结点,如何找到传输的最优路径,选择最优结点成了首要需求,此时便有了网络层。 网络层的最主要的作用:完成ip地址到mac地址的转换,并决定发送数据以怎样的路径路由到接收方;路由器就工作在这一层, 路由的数据单位为数据包;
  • 传输层:

    网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。传输层提供了进程间的逻辑通信。传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。传输层实现的两个重要协议就是tcp/ip. 然后说一下他们的特点和区别。

  • 会话层:

    因为对于tcp协议而言,如果每一次建立传输都需要重新三次握手建立连接,那么显然是很低效的。 而会话层的作用就是建立通信链接,保持会话过程通信连接的畅通。 他的三大功能主要包括:建立会话,保持会话,断开会话。

建立会话:A、B两台网络设备之间要通信,要建立一条会话供他们使用,在建立会话的过程中也会有身份验证,权限鉴定等环节;

保持会话:通信会话建立后,通信双方开始传递数据,当数据传递完成后,OSI会话层不一定会立刻将两者这条通信会话断开,它会根据应用程序和应用层的设置对该会话进行维护,在会话维持期间两者可以随时使用这条会话传输局;

断开会话:当应用程序或应用层规定的超时时间到期后,OSI会话层才会释放这条会话。或者A、B重启、关机、手动执行断开连接的操作时,OSI会话层也会将A、B之间的会话断开。

  • 表示层:

电脑从网卡收到一串数据时,这些数据在电脑中都是都是二进制的格式,我们人类是看不懂二进制的,就需要表示层帮忙将这些二进制转换成我们能够识别的数据。只有在表示层将数据处理完成后,才能将转格式编译后的数据呈现在应用程序中,让用户能够看懂。

从物理层依次解封装至表示层之后,表示层会检查电脑中是否有能识别该gif图片的解码工具,如果有,则将gif图片展现在相应的应用程序中;如果没有,则提示打不开,或显示出一堆乱码。

  • 应用层:

    应用层提供各种各样的应用层协议,这些协议嵌入在各种我们使用的应用程序中,为用户与网络之间提供一个打交道的接口。比如,IE浏览器,使用的是应用层的HTTP协议;QQ使用的应用层协议是OICQ;Outlook使用收发邮件的SMTP、POP3协议。这里要注意一点,我们所使用的软件是应用程序,这些软件只是软件开发者编程开发出来的,这些应用软件只是一个壳子,而这些软件里嵌套的协议才是应用层的内容,使用网络的程序需要集成协议才可以正常使用。
    参考
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章