前端关于HTTP相关知识

HTTP协议简介

HTTP(超文本传输协议)是应用层上的一种客户端/服务端模型的通信协议,它由请求和响应构成,且是无状态的。(暂不介绍HTTP2)

  • 协议

协议规定了通信双方必须遵循的数据传输格式,这样通信双方按照约定的格式才能准确的通信。

  • 无状态
    无状态是指两次连接通信之间是没有任何关系的,每次都是一个新的连接,服务端不会记录前后的请求信息。

  • 客户端/服务端模型
    前端关于HTTP相关知识
    五层网络模型

前端关于HTTP相关知识

拓展:

  • TCP的三次握手:建立连接、传输数据、断开连接
  • http和https的区别:
    https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
    http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议,是以安全为目标的HTTP通道。
    http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
    HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

URL构成

用了这么久,你注意过吗?
前端关于HTTP相关知识
协议内容

请求(Request)

客户端发送一个HTTP请求到服务端的格式:

  • 请求行

  • 请求头

  • 请求体
    前端关于HTTP相关知识
    响应(Response)

服务端响应客户端格式:

  • 状态行

  • 响应头

  • 响应体
    前端关于HTTP相关知识
    状态码

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:
前端关于HTTP相关知识
更详细的状态码可查看 HTTP状态码

但一般我们只需要知道几个常见的就行,比如 200,400,401,403,404,500,502.

请求方法

截止到HTTP1.1共有下面几种方法:
前端关于HTTP相关知识
请求和响应常见通用头

前端关于HTTP相关知识

注意

Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。

常见的媒体格式类型如下:

详见: mime.json

前端关于HTTP相关知识

以application开头的媒体格式类型:

前端关于HTTP相关知识

常见请求头

前端关于HTTP相关知识
常见响应头

前端关于HTTP相关知识
总结

清楚的知道这些内容,不仅仅是为了应对面试官,而是能实实在在的提高自己的效率,这一点在前后端联调接口最明显,当你在应用中去请求其他接口或转发请求时这些也是要知道的。不然出现问题的概率会大大提高。