大前端面试题集锦——HTTP篇

HTTP篇

1.什么是HTTP/HTTPS?

  • HTTP指的是超文本传输协议,是一种在浏览器客户端或其他程序中发送请求与服务器响应过程中的应用层通信协议
  • HTTPS是由HTTP+SSL构成的一种可以进行加密传输与身份认证的一种安全通信通道

2.HTTPHTTPS有什么区别?

  • HTTP
    • 使用明文传输信息,安全性差
    • 默认使用80端口号
    • 连接是无状态的
  • HTTPS
    • HTTP+SSL构成,对信息进行加密传输,需要进行身份认证,安全性高
    • 默认使用443端口号
    • 需要到ca申请证书,需要承担额外的费用

3.HTTP常见的响应状态码有哪些?

  • 1**信息响应状态码
    • 100客户端必须继续发送请求*
    • 101客户端要求服务器根据请求转换HTTP协议*
  • 2**成功状态码
    • 200请求成功*
    • 201请求成功并创建了新的资源*
    • 202接受和处理,但尚未完成处理
    • 203返回信息不确定或不完整
    • 204返回信息为空*
    • 205服务器完成了请求,但是用户代理必须复位当前已浏览过的文件
    • 206服务器完成了用户的部分get请求
  • 3**重定向状态码
    • 300请求的资源可以在多处获得
    • 301删除请求数据*
    • 302在其他地址发现了请求数据*
    • 303建议用户访问其他URL或者更换访问方式
    • 304用户请求的资源未被修改,可以使用缓存的资源*
    • 305请求的资源必须从服务器指定的URL获取
    • 306前一版本中HTTP使用的代码,现版本不再使用
    • 307请求的资源被临时删除
  • 4**客户端错误状态码
    • 400请求错误,服务器无法理解*
    • 401请求授权失败*
    • 402保留有效chargeto头响应
    • 403禁止访问*
    • 404请求资源未找到*
    • 405用户在request-line字段定义的方法不允许
    • 406请求资源不可访问
    • 407用户必须首先在代理服务器中得到授权
    • 408客户端没有在用户指定的时间内完成请求
    • 409当前资源的状态请求无法完成
    • 410服务器上不再存在此资源并且没有参考地址
    • 411服务器拒绝用户定义的content-length属性请求
    • 412请求头中存在字段错误
    • 413请求的资源大于服务器允许的大小
    • 414请求的URL长度大于服务器允许的长度
    • 415请求资源不支持请求项目格式
    • 416请求中包含range请求头字段,但请求资源范围内没有range指示值
    • 417服务器不满足expect请求头指定的期望值
  • 5**服务端错误状态码
    • 500服务器内部错误*
    • 501服务器不支持请求的函数
    • 502服务器暂时不可用*
    • 503服务器过载或暂停维护*
    • 504关口过载,服务器使用另外的关口响应请求,等待时间设定值较长
    • 505服务器不支持或拒绝请求头中指定的HTTP版本

4.常见的HTTP请求有哪些?有什么区别?

请求方法 作用
get 获取资源,向服务器查询信息
post 将包含在请求体中的数据向指定的地址进行提交
head 返回的响应中没有具体内容,通常用于获取报头
put 从客户端发送数据以取代指定文档的内容
delete 请求服务器删除指定内容
connect 要求在与代理服务器通信时建立隧道,使用隧道进行TCP通信
options 询问支持的请求方法,用来跨域请求
trace 回显服务器收到的请求,用于测试或诊断
  • 上述请求中,getpost请求更加常用
  • get请求传参通常直接跟在URL地址后面以?的方式进行拼接,并且将多个参数用&进行连接,使用get方式传递的参数具有大小限制,这通常是因为对URL长度有限制,使用get请求,在地址栏能够看到提交的参数信息,通常意味着存在安全风险

5.什么是三次握手与四次挥手?

  • 三次握手指的是客户端与服务端之间进行通信连接的三个步骤
    • 第一次握手是用来建立连接,客户端发送连接请求报文,发送规定的数据包
    • 第二次握手是服务器端表示接收到连接请求报文,并回传规定的数据包
    • 第三次握手是客户端接收到了服务端回传的数据包之后,给服务端再次发送数据包
  • 四次挥手指的是当前连接请求已经结束,需要断开此次连接
    • 第一次挥手是客户端对服务端发起断开请求
    • 第二次挥手是服务端确认收到这次的断开请求
    • 第三次挥手是服务端表示已经断开连接
    • 第四次挥手是客户端表示已经断开连接

6.详细说说get请求与post请求有什么区别?

区别 get post
应用场景 请求通常不会影响服务端资源 会影响服务端资源
参数传递 通常使用明文的方式在URL末尾使用?拼接参数,多个参数使用&连接 将参数放在请求体中进行发送
安全性 不安全 安全
缓存 一般会缓存 一般不会缓存
请求长度 限制请求参数长度 不受限制
参数类型 使用名值对的方式 使用名值对,json数据格式等
报文格式 报文中实体部分为空 实体部分用来存放请求参数

7.详细说说post请求与put请求有什么区别?

post put
通常会增加数据库中数据的长度或类别,它会创建一个新的数据 通常用来更新服务器的部分数据,并不会更改原数据库中的数据长度

8.常见的HTTP请求头与响应头有哪些?

  • 请求头
name description
accept 浏览器能够处理的内容类型
accept-charset 浏览器能够显示的字符集
accept-encoding 浏览器能够处理的压缩编码
accept-language 浏览器当前设置的语言
connection 浏览器与服务器之间的连接类型
cookie 当前页面设置的任何cookie
host 当前请求的页面所在的域
referer 当前浏览器发出请求的页面的URL
user-agent 浏览器的用户代理字符串
  • 响应头
name description
date 消息发送的时间
server 服务器名称
connection 浏览器与服务器之间连接的类型
cached-control 控制浏览器的缓存
content-type 表示后面的文档属于什么MIME类型
  • content-type有如下类型
    • application/x-www-form-urlencoded可以提交表单类型数据,以名值对的格式
    • applicati
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Midshar.top

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

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

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

打赏作者

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

抵扣说明:

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

余额充值