你敢信一个HTTP能打趴80%面试者?

简介: 面试一年多,每当我问起面试者对HTTP的了解时,个个回答令我瞠目结舌,这些开发者都有3-5年的经验。请不要让我叫你野生程序员,是时候了解HTTP了,让我们当个正规军。

面试一年多,每当我问起面试者对HTTP的了解时,个个回答令我瞠目结舌,这些开发者都有3-5年的经验。请不要让我叫你野生程序员,是时候了解HTTP了,让我们当个正规军。

起因

面试官:请问你了解HTTP协议吗?

前端开发:这不是应该后端清楚的吗?

后端开发:这不是前端知道的吗?

面试官:……

我们先一本正经的来了解下HTTP(不包含传输层TCP),然后总结其中的精华回复面试官。

HTTP协议简介

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

  • 协议
    协议规定了通信双方必须遵循的数据传输格式,这样通信双方按照约定的格式才能准确的通信。
  • 无状态
    无状态是指两次连接通信之间是没有任何关系的,每次都是一个新的连接,服务端不会记录前后的请求信息。
  • 客户端/服务端模型

五层网络模型

URL构成

用了这么久,你注意过吗?

协议内容

请求(Request)

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

  • 请求行
  • 请求头
  • 请求体

响应(Response)

服务端响应客户端格式:

  • 状态行
  • 响应头
  • 响应体

状态码

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:

更详细的状态码可查看 HTTP状态码

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

请求方法

截止到HTTP1.1共有下面几种方法:

请求和响应常见通用头

注意

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

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

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

常见请求头

常见响应头

总结

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

本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。

相关文章
|
存储 SQL 算法
B端算法实践问题之Blink在实时业务场景下的优势如何解决
B端算法实践问题之Blink在实时业务场景下的优势如何解决
145 1
|
Java 数据库连接 数据库
ssm整合(实现一个小项目的增删改查) 1
ssm整合(实现一个小项目的增删改查)
|
机器学习/深度学习 算法 PyTorch
机器学习 - 似然函数:概念、应用与代码实例
机器学习 - 似然函数:概念、应用与代码实例
461 0
|
C语言
分支和循环(1)
分支和循环(1)
119 0
|
Web App开发 JavaScript 前端开发
前端跨域的原因以及解决方案(vue),一文让你真正理解跨域
前端跨域的原因以及解决方案(vue),一文让你真正理解跨域
1679 0
|
安全 Java 编译器
深入理解 Java 枚举 Enum 类型用法
深入理解 Java 枚举 Enum 类型用法
1864 0
|
JavaScript Linux
LINUX安装node/nodejs
LINUX安装node/nodejs
193 0
|
存储 消息中间件 JSON
SLS数据处理实践:加工延迟篇
在日志服务,数据加工功能(功能介绍)用于完成对Logstore数据的预处理,为后续的分析阶段准备数据。本文主要介绍数据加工实践中可能遇到的延迟问题,帮助大家理清延迟现象背后的原因,以及如何去监控、解决延迟问题。
3398 0
5_python基础—条件语句(三目运算符)
5_python基础—条件语句(三目运算符)
239 0
|
存储 Java API
JDK12的五大重要新特性
JDK12的五大重要新特性