1. 前言
无论是作为后端开发、前端开发、测试开发程序员或者是运维人员,在面试过程中,大概率都会被问到 HTTP 协议相关题目。
因为伴随着 2010 年之后移动互联网在全世界的高速发展,各种各样的浏览器(Chrome、FireFox、Safari 等)层出不穷,也诞生了诸多服务端开发的语言(例如 Golang 语言),浏览器和服务端之间的交互是不可避免的,我们对于不同的浏览器和不同的服务端,总不能每次都创建一种新的交互协议,所以需要确定统一的协议规范,也就是本文的 HTTP 协议。
2.1 HTTP 协议定义
面试官提问: 什么是 HTTP 报文?什么是 HTTP 报文?
题目解析: 首先,我们给出 HTTP 的定义:HTTP(HyperText Transfer Protocol,超文本传输协议)是一个请求 - 响应(Request to Response)协议,位于网络模型的应用层,基于传输层的 TCP 协议。
其次,HTTP 报文是在客户端和服务器端传输的数据报文,由起始行(Start Line)、请求头部(Request Header)和请求主体ÿ