面试_Http常见问题

  1. http协议的默认端口
    80

  2. 应用层有哪些协议
    http ,FTP,SMTP,DNS,MQ

  3. 在浏览器中输入网址后会发生什么:
    首先服务器有自己的ip地址,但ip地址对人来说很难记,所以人会在浏览器里输入域名,然后经过DNS解析为ip,访问对应的服务器
    与服务器发起三次握手
    建立链接TCP链接,发起HTTP请求
    服务器响应HTTP请求,返回响应报文
    浏览器渲染展示页面
    断开TCP链接,四次挥手

  4. 为什么要三次握手:
    在这里插入图片描述一般来说两次握手其实可以建立好链接,但第二次握手是发送方收到接收方传来的ACK。在实际情况中这条信息发送方有可能没有收到,所以就需要第三次握手,发送方通知接收方我收到ACK了,连接正式建立。
    为什么不是四次握手,因为三次是保证连接建立的最少次数,通信的质量不是靠握手的次数来保证的,所以更多的握手次数没有必要。

  5. 为什么要四次挥手:
    在这里插入图片描述首先,发送方发出Find的报文,接收方需要连续发出两次报文,这是因为在发送第一个ack报文的时候,接收方手头可能有正在传输的其他报文,所以会在手头的报文传输完毕之后回复一个fin报文表示可以结束通信。发送方这时候会回复ack表示收到接收方的fin报文,通信正式结束。
    为什么接受方不可以等手头的报文发完只回一个ack/fin报文呢,这是因为接收方可能迟迟等不到回复以为报文丢失,他可能会重复发起挥手。

  6. 状态码:
    200:成功 204:成功但no content
    300: 需要重定向
    400:客户端请求错误 (分两种,bad request:错误的请求,invalid hostname:不存在的域名)

    	401:invalid token 未正确授权
    	402:支付类的错误代码,比如要付费后才能继续访问后续接口
    	403:forbidden无权限访问该网站
    	404:请求资源不存在
    	405: 请求错误,请求方法不被允许
    

    500:服务器内部错误

    	501:未实现,服务器不具备完成请求的功能
    	502:bad gateway链接超时。服务器当前链接太多,无法给予正常响应
    	503: 临时的服务器维护或者过载
    	504:gateway timeout,服务器作为代理或者网关,没有及时从上游服务器接收到请求	
    	505:请求的HTTP版本不被支持
    
  7. TCP/IP有哪四层:
    应用层:应用层决定了向用户提供应用服务时通信的活动。
    传输层:提供处于网络连接中的两台计算机之间的数据传输。(TCP/UDP)
    网络层:网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方(IP)
    数据链路层:用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、

  8. cookie和session的区别:
    1.cookie存放在客户端,session存放在服务器
    2.cookie不是太安全,别人可以欺骗获取到存放在客户端的cookie
    3.session由于存放在服务器,如果访问过多的话会有性能方面的问题
    4.cookie的存续时间比较长,session的存在时间比较短

  9. 代理可以分为两类:
    一种使用缓存,一种会修改报文

  10. HTTP和HTTPS的区别:
    1.HTTP不加密,不验证对方身份,可能遭遇伪装拦截,不验证报文的完整性,总体而言安全性较差。而HTTPS会使用SSL加密
    2.HTTP速度更快,HTTP三次握手只需要交换三个包,而HTTPS需要交换包含SSL在内的12个包
    3.使用端口不通,HTTP使用的80端口,HTTPS是443
    4.HTTPS就是HTTP+SSL,因此HTTPS会更耗费资源 (SSL是独立于HTTPS的网络安全技术)

  11. GET 和POST的区别
    1.GET将请求参数放在URL里,POST放在REQUEST BODY里
    2.对于GET,浏览器会主动给cache,POST不会
    3.GET比POST更加不安全,因为他的参数直接暴露在URL里
    4.GET的在URL请求传参是由长度限制的,POST没有
    5.GET只接受ACSLL码值,PSOT没有限制
    6.两者的TCP传送方式不同,GET会把header和body一起发出去,然后得到200OK,而POST会先发header,得到100 CONTINUE然后再接着发body的内容

  12. TCP与IP分别位于那一层
    TCP与UDP位于传输层
    IP位于网络层

  13. TCP与UDP的区别
    1.TCP是面向链接的,需要先三次握手,UDP不需要先建立链接,直接传送数据
    2.TCP传送的数据稳定可靠不丢失不重复,UDP则保证不了这些
    3.TCP是1对1的,UDP可能1V1,也可能一对多
    4.TCP是面向字节流,UDP则是面向报文,所以UDP在网络拥挤时不会降低发送效率但可能出现丢包,常见应用于视频电话

  14. HTTP1.0和HTTP2.0的区别
    参考:https://blog.csdn.net/yinlidong77/article/details/103908035

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LSQ的测试日记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值