JavaWeb 之 HTTP 协议 (一)
客户端发送给服务器的格式叫“请求协议”;服务器发送给客户端的格式叫“响应协议”
服务器端资源需要通过浏览器进行,此时由浏览器将我们给出的请求解析为满足 HTTP 协议的格式并发出。我们发出的请求格式需要按照浏览器规定的格式来书写,在浏览器中书写格式如下:
当浏览器获取到信息以后,按照特定格式解析并发送即可
接收到服务器端给出的响应时,也按照 HTTP 协议进行解析获取到各个数据,最后按照特定格式展示给用户
支持客户/服务器模式
简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、POST。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快
灵活:HTTP 允许传输任意类型的数据对象。传输的类型由
Content-Type
加以标记无连接:无连接是表示每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间
HTTP1.1 版本后支持可持续连接。通过这种连接,就有可能在建立一个 TCP 连接后,发送请求并得到回应,然后发送更多的请求并得到更多的回应
通过把建立和释放 TCP 连接的开销分摊到多个请求上,则对于每个请求而言,由于 TCP 而造成的相对开销被大大地降低了。而且,还可以发送流水线请求,也就是说在发送请求 1 之后的回应到来之前就可以发送请求 2 。也可以认为,一次连接发送多个请求,由客户机确认是否关闭连接,而服务器会认为这些请求分别来自不同的客户端
无状态:HTTP 协议是无状态协议
无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时,它的应答就较快。
HTTP 请求由三部分组成,分别是:请求行、请求头、请求体
请求行:HTTP 协议的第一行(请求行由以下三部分组成)
请求方式 GET/POST
请求路径 URL
请求协议版本 HTTP/1.1
请求头:协议中的键值对
请求体:传递给服务器的数据(GET 请求是没有请求体的,因为 GET 请求会将它请求的数据直接跟在地址栏后面)
在浏览器中 F12 -> Network -> 刷新网页即可显示查看请求消息和响应消息。
1.3.1、GET 请求(没有请求体)
1.3.2、Post 请求
1.3.3、请求的格式
请求的格式如下:
请求行
请求头 1
请求头 2
....
请求空行
请求体
请求行以一个方法符号开头,以空格分开,后面跟着请求的 URL 和协议的版本
? 格式如下:Method Request-URI HTTP-Version CRLF
Method
表示请求方法;Request-URI
是一个统一资源标识符;HTTP-Version
表示请求的 HTTP 协议版本CRLF
表示回车和换行
在接收和解释请求消息后,服务器会返回一个 HTTP 响应消息。HTTP 响应也是由三部分组成,分别是:
评论