网络协议面试

1、浏览器输入url按回车,背后经历了什么?

  • 首先,在地址栏输入一串url,先解析url,看url是否合法
  • 浏览器先查看浏览器缓存->系统缓存->路由器缓存,如果缓存中有缓存数据,会直接在屏幕上显示页面内容
  • 在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址
  • 浏览器向服务器发起tcp连接,与浏览器建立起tcp三次握手
  • 握手成功后,浏览器向服务器发送http请求,请求数据包
  • 服务器处理收到的请求,将数据返回至浏览器
  • 浏览器收到http响应后
  • 浏览器解码响应,如果响应可以缓存,则存入缓存
  • 浏览器发出请求获取嵌入在html中的资源(html、css、js、图片、音乐)
  • 页面全部渲染结束

2、Get请求和Post请求区别

  • Get请求会被浏览器主动cache,而Post不会,除非手动设置
  • Get请求参数会被完整保留在浏览器历史记录里,而Post中的参数不会保留
  • Get请求在url中传递的参数是有长度限制的,而Post没有
  • Get请求相对Post不安全,因为参数直接暴露在url上,所以不能用来传递敏感信息
  • Get请求参数通过url传递,Post请求参数放在RequestBody中
  • Get请求产生一个tcp数据包,Post请求会产生两个tcp数据包

3、Cookies 和Session的区别

  • Cookies保存在客户端;Session保存在服务端
  • Cookies可以减轻服务器压力,但是不安全,容易进行Cookies欺骗;Session较安全,但占用服务器资源
  • Cookies存储有长度限制;Session存储没有长度限制

4、Http和Https的区别

  • Https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用
  • Http是超文本传输协议,信息是明文传输的,Https则是具有安全性的SSL加密传输协议
  • Http和Https使用的是完全不同的连接方式,端口也不一样,前者是80端口,后者是443端口
  • Http的连接很简单,是无状态的;Https是由SSL + Http协议构建的可进行加密传输、身份认证的网络协议,比Http安全

5、Http请求报文与响应报文格式

  • 请求报文包含三部分:
    请求行:包括请求方法、url、Http版本信息
    请求头部headers字段
    请求内容实体body
  • 响应报文包含三部分:
    状态行:包含Http版本、状态码、状态码的原因短语
    响应头部headers字段
    响应内容body字段

6、Tcp的三次握手

在这里插入图片描述

  • 第一次握手,建立连接时,客户端A发送SYN包(SYN=j)到服务器,并进入SYN_SEND状态,等待服务器B确认
  • 第二次握手,服务器B收到SYN包,必须确认客户端A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态
  • 第三次握手,客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手

7、OSI七层网络模型/TCP四层概念模型/五层模型

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Happy王子乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值