当前位置: 首页 > 后端技术 > Java

专访闪电战64:HTTP协议你懂吗?

时间:2023-04-01 17:50:51 Java

HTTP(HyperTextTransferProtocol)超文本传输??协议,以下简称HTTP,其功能是实现服务器与客户端之间的数据传输。它可以传输任意数据类型,如文本、HTML、图片、文件、声音等类型。简单来说,HTTP就像一个“快递”,承载着客户端(浏览器)和服务器之间的数据传输,如下图所示:一、HTTP的特点HTTP的主要特点有:简单、快速:客户端向服务端发送请求时,只需要传递请求方法、路径和请求参数即可。由于协议简单,HTTP服务器的程序体积小,所以通信速度很快。无连接:所谓无连接是指每个连接只处理一个请求。服务器处理完客户端的请求后,会立即断开连接。无状态:HTTP不记录每个请求的身份信息,因此前一个请求和下一个请求彼此“不认识”。可以传输任何数据类型:HTTP允许传输任何数据类型,只要在请求头中需要标识该数据类型Content-Type即可。一对一通信:对于每一个HTTP请求,一个客户端对应一个服务器。2.HTTP组成HTTP由以下2部分组成:请求对象Request(客户端请求)。响应对象Response(服务器响应)。每个HTTP请求由请求和响应组成,如下图所示:2.1请求对象请求对象包含4个部分:请求行、请求头、空行、请求文本,如下图所示:2.1.1Requestline,请求行包含以下3部分:请求类型Method,如GET。请求的URL地址,如https://www.baidu.com。HTTP版本号,例如HTTP/1.1。其中,所有请求类型如下:2.1.2请求头请求头描述了发送请求时更多的请求信息。它以“name:value”的形式存在,每个请求头占一行。常见的请求头如下:Host:表示服务器的地址和端口号。Content-Type:用于描述请求文本中的数据类型。常见的类型有:json格式的application/json、form格式的application/x-www-form-urlencoded、file格式的multipart/form-data等。Content-Length:用于描述请求文本中数据的长度。需要注意的是这里数据长度的统计单位是字节而不是字符。User-Agent:用户代理信息,如访问用户系统信息、浏览器类型和版本信息等。2.1.3空行没有任何内容的空行,用于分隔请求头和请求文本的特殊组成部分。2.1.4请求文本业务系统需要传递参数。2.2响应对象响应对象也由4部分组成:状态行响应头空行响应文本如下图:2.2.1状态行状态行用于描述服务器的返回状态,它包括由3部分组成:HTTP版本号,例如HTTP/1.1。状态码,如200。状态描述信息,如OK。常见的状态码如下:200:返回成功。301:永久重定向。302:临时重定向。404页面不存在。500:服务器程序错误。2.2.2响应头响应头与请求头类似,也是以“名称:值”的形式存在,每个头占一行。常见的header包括Content-Type,用于描述响应文本的数据类型。常见的数据类型包括:json格式的application/json和HTML格式的text/html。2.2.3空行没有内容的空行用于将状态行与响应文本的特殊组成部分分开。2.2.4ResponseText所有返回给客户端的数据。总结HTTP超文本传输??协议,用于实现服务器与客户端之间的数据传输。它的特点是简单快速、无连接、无状态、任意数据类型和一对一通信。HTTP协议由两部分组成:请求对象Request和响应对象Response。判断是非在自己,名誉在别人,得失在人数。公众号:Java面试真题分析面试合集:https://gitee.com/mydb/interview