JavaWeb之HTTP协议(一),这么香的技术还不快点学起来
=============================================================================
| 🔥javaEE进阶之旅 | 地址 |
| — | — |
| 🔥JavaWeb之HTTP协议(一) | |
| 🔥JavaWeb之Servlet技术(二) | |
| 🔥JavaWeb之JSP技术(三) | |
| 🔥JavaWeb之Cookie和Session技术(四) | |
| 🔥JavaWeb之Filter和Listener技术(五) | |
1、Http协议
==========================================================================
-
HTTP协议,是一个客户端请求和响应的标准协议,这个协议详细规定了浏览器和万维网服务器之间互相通信的规则,用户输入地址和端口号之后就可以从服务器上取得所需要的网页信息 通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。 客户端发送给服务器的格式叫“请求协议”;服务器发送给客户端的格式叫“响应协议”
1.1、浏览器中的书写格式
服务器端资源需要通过浏览器进行,此时由浏览器将我们给出的请求解析为满足HTTP协议的格式并发出。我们发出的请求格式需要按照浏览器规定的格式来书写,在浏览器中书写格式如下:
-
当浏览器获取到信息以后,按照特定格式解析并发送即可 接收到服务器端给出的响应时,也按照HTTP协议进行解析获取到各个数据,最后按照特定格式展示给用户
1.2、HTTP协议的特点
- 支持客户/服务器模式
- 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快
- 灵活:HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记
- 无连接:无连接是表示每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间 HTTP1.1 版本后支持可持续连接。通过这种连接,就有可能在建立一个TCP连接后,发送请求并得到回应,然后发送更多的请求并得到更多的回应 通过把建立和释放TCP连接的开销分摊到多个请求上,则对于每个请求而言,由于TCP而造成的相对开销被大大地降低了。而且,还可以发送流水线请求,也就是说在发送请求 1 之后的回应到来之前就可以发送请求 2 。也可以认为,一次连接发送多个请求,由客户机确认是否关闭连接,而服务器会认为这些请求分别来自不同的客户端
- 无状态:HTTP协议是无状态协议 无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时,它的应答就较快。
1.3、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 .... 请求空行 请求体