码迷,mamicode.com
首页 > Web开发 > 详细

HTTP协议的认识 面试题

时间:2020-03-12 12:43:18      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:用户   auth   for   需要   篡改   解密   ssl   中间   身份验证   

1.什么是HTTP协议?

# 超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议
# 端口:80

 2.HTTP的特点

# 1.无状态:协议对客户端没有状态存储,访问一个网站需要反复进行登录操作
# 2.无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。e.g:客户机在短时间内多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量
# 3.通信使用明文,请求和响应不会对通信方进行确认,无法保护数据的完整性

 3.HTTP常用状态码

# 1xx: 临时响应
  101:切换协议,比如http协议切换成https协议
# 2xx: 成功状态码,请求正常处理完毕
  200 ok:请求已正常处理
# 3xx: 表示浏览器需要执行某些特殊的处理以正确处理请求
  301:永久性重定向,表示url已更新,请求资源已被分配到新的url
# 4xx: 服务器无法处理请求
  400 Bad Request:服务器无法解析客户端的请求
  401 Unauthorized:客户端未认证
  403 Forbidden:请求被拒绝(权限,未授权ip)
  404 Not Found:服务器上没有请求的资源
# 5xx: 服务器本身发生错误

 4.HTTP1.1和2.0比较

# HTTP1.1的请求和响应是基于文本的,所有的数据必须按顺序传输,比如发送一个字符串:hello world 必须从h-d一个一个传输,不能并行传输.
# HTTP2.0采用的是多路复用,通过单一的TCP连接实现并行传输,时间短,性能更占优.

5.HTTP访问过程

# 1.建立TCP连接
# 2.浏览器想服务器发送请求命令
# 3.浏览器发送请求头信息,如user-agent,host等,如果是post请求,则继续提交请求体
# 4.服务器响应
# 5.服务器发送响应头信息
# 6.服务器向浏览器发送数据
# 7.服务器关闭TCP连接,设置keep-alive则状态保持

 6.什么是HTTPS协议?

# 基于HTTP协议,通过SSL或TLS提供加密处理数据,验证对方身份以及保护数据完整性的协议
# 端口:443

7. HTTPS特点

# 1.内容加密:采用混合加密技术,中间者无法查看明文内容
# 2.身份验证:通过证书认证客户端访问的是自己的服务器
# 3.保护数据的完整性:防止传输内容被中间人冒充或篡改

8.HTTPS访问过程

 

# 证书阶段
1.浏览器向服务器发起HTTPS请求
2.服务器返回HTTPS证书
3.浏览器验证证书合法性,不合法则提示警告

# 数据传输阶段
1.浏览器验证证书合法后,在本地生成随机数
2.浏览器通过服务器的公钥加密随机数,并将这个密钥发送给服务器
3.服务器通过私钥解密密钥
4.服务器通过随机数构造对称加密算法,对返回的数据加密后传输

 

9.为什么数据传输是对称加密?

# 1.非对称加密的加解密效率非常低,http应用场景中,端与端之间的数据交互非常频繁,非对称加密的效率无法满足
# 2.私钥只保存在了服务器中,一对公私钥只能实现单向的加解密

10.中间人攻击

技术图片

 

 

HTTP协议的认识 面试题

标签:用户   auth   for   需要   篡改   解密   ssl   中间   身份验证   

原文地址:https://www.cnblogs.com/abysschen/p/12467886.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!