HTTP(Hyper Text Transfer Protocol)超文本传输协议,面试下文简称 HTTP,突击它的面试作用是用于实现服务器端和客户端的数据传输的。它可以传输任意的突击数据类型,如文本、面试HTML、突击图片、面试文件、突击声音等类型。面试
简单来说,突击HTTP 的面试作用就像一个“快递”一样,用来承载客户端(浏览器)和服务器端的突击数据传输,如下图所示:
HTTP 是由以下 2 部分组成的:
请求对象 Request(客户端请求)。响应对象 Response(服务器响应)。每次 HTTP 请求都是由一次请求和一次响应构成的,如下图所示:
请求对象包含 4 部分内容:
请求行请求报头空行请求正文如下图所示:
请求行包含了以下 3 部分内容:
请求类型 Method,如 GET。请求的 URL 地址,如 https://www.baidu.com。HTTP 版本号,如 HTTP/1.1。其中,所有的请求类型如下:
请求报头是在发送请求时,描述更多的请求信息的,它以 "name: value" 的形式存在的,云服务器提供商每个请求报头占一行。常见的请求报头有以下几个:
Host:表示服务器端的地址和端口号。Content-Type:用于描述请求正文中的数据类型,常见的类型有:json 格式的 application/json、表单格式的 application/x-www-form-urlencoded、文件格式的 multipart/form-data 等。Content-Length:用于描述请求正文中的数据长度,需要注意的是,这里的数据长度统计单位为字节而非字符。User-Agent:用户代理信息,比如访问用户的系统信息,浏览器类型和版本信息等。2.1.3 空行一个没有任何内容的空行,用于分隔请求报头和请求正文的特殊组成部分。
2.1.4 请求正文业务系统中要传递参数。
响应对象也是由 4 部分内容组成的:
状态行响应报头空行响应正文如下图所示:
状态行用于描述服务器的返回状态,源码下载它由 3 部分组成:
HTTP 版本号,如 HTTP/1.1。状态码,如 200。状态描述信息,如 OK。常见的状态码有以下几个:
200:返回成功。301:永久重定向。302:临时重定向。404:未找到页面。500:服务器程序出错。2.2.2 响应报头响应报头和请求报头类似,也是以 "name: value" 的形式存在的,每个报头占一行。常见的报头有 Content-Type,它是用于描述响应正文的数据类型的,常见的数据类型有:json 格式的 application/json 和 HTML 格式的 text/html。
2.2.3 空行一个没有任何内容的空行,用于分隔状态行和响应正文的特殊组成部分。
2.2.4 响应正文返回给客户端的所有数据。