面试常被问的HTTP和HTTPS

本文通过一次面试经历引入,介绍了HTTP的基本概念、报文格式、特点,包括请求和响应报文的首部字段及其含义。接着,讨论了HTTPS的特点,如内容加密、身份验证和数据完整性保护,以及其在确保通信安全方面的作用。对于面试者来说,理解HTTP和HTTPS的核心概念以及它们之间的区别至关重要。
摘要由CSDN通过智能技术生成

引言

讲一段自己的真实的面试经历。

面试官:HTTP你懂么?
我:懂一点
面试官:HTTP响应头首部的一个Content-Type字段表示什么含义?
我:。。。emmm。。是不是编码格式我记得。
面试官:哦~那Content-Encoding表示什么呢?
我:哦哦,是这个表示编码格式。(尴尬)
面试官:哦~那Content-Type表示什么?
我:。。emmm。。。。是不是表示支持的语言。。
面试官:哦~~那Content-Language表示什么?
我:哦哦,是这个表示使用的语言。。。(出汗了)
面试官:哦~那Content-Type表示什么?
我:(一脸黑线)我不知道。。。

我记得他好像笑出了声,所以这就是猫眼娱乐的一个面试官啊,印象极其深刻,我会记他一辈子。😃

什么是HTTP?

HTTP是超文本传输协议,是一个基于请求与相应,无状态的,应用层的协议。常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议。设计HTTP的初衷是为了提供一种发送和接收HTML页面的方法。HTTP/1.0出生于1996年,我也是这一年出生的。HTTP/1.1出生于1997年。HTTP/2产生于2015年,增加了多路复用,头信息压缩,二进制协议等内容。

HTTP报文格式

请求报文

请求报文
常问的可能是HTTP的几种请求方法的含义,GET和POST的区别,头/首部字段名的含义
列出几个首部字段名及含义。

请求头字段名说明
Accept能够接受的回应内容类型
Accept-Charset能够接受的字符集
Accept-Encoding能够接受的编码方式列表
Accept-Language能够接受的回应内容的自然语言列表
Cookie之前由服务器Set-Cookie发送的一个超文本传输协议Cookie
Content-Length以八位字节数组表示的请求体的长度
Content-Type请求体的多媒体类型
Data发送该消息的日期和时间

响应报文

响应报文
一个可能会问的问题,HTTP状态码和其含义。上次面试,面试官问了我状态码500表示什么。
一般状态码是一个三位数,最高位定义了响应的类别。

最高位含义
1xx指示信息,表示请求已接收,继续处理
2xx成功,表示请求已被成功接收,理解,接受
3xx重定向,要完成请求必须进行更进一步的操作
4xx客户端错误,请求有语法错误或请求无法实现
5xx服务端错误,服务器未能实现合法的请求

常见的状态码以及描述如下:

状态码描述
200OK,客户端请求成功
400Bad Request,客户端请求有语法错误,不能被服务器所理解
401Unauthorized,请求未经授权
403Forbidden,服务器收到请求,但是拒绝提供服务
404Not Found,请求资源不存在,比如输入了错误的URL
500Internal Server Error,服务器发生不可预期的错误
503Server Unavailable,服务器当前不能处理客户端的请求,一段时间后可能恢复

列出几个首部字段名及含义。

响应头字段名说明
Content-Encoding在数据上使用的编码格式
Content-Length响应主体的长度
Content-Type当前内容的类型
Data此条消息被发送时的日期和时间

HTTP的特点

  1. 无状态。协议对客户端没有状态存储,对事物处理没有记忆能力,比如访问一个网站需要反复进行登陆操作。
  2. 无连接。HTTP/1.1以前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要消耗不必要的时间和流量。
  3. 基于请求和响应:基本的特性,由客户端发起请求,服务端响应。
  4. 简单快速、灵活。
  5. 通信使用明文,请求和响应不会对通信方进行确认,无法保护数据的完整性。

HTTPS的特点

基于HTTP协议,通过SSL或TLS提供加密处理数据,验证对方身份以及数据完整性保护。
HTTPS有如下特点:

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

具体的加密过程这里不再细说,之前面试58,面试官问我:怎么确保CA的正确性?当时晕了,没答出来,其实操作系统都预装了最顶级的可以信任的CA,信用一级一级背书,可以知道服务端发送的CA公钥是不是对的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值