目录
概念
特点
内容预告
概念
- HTTP 协议定义:全称 Hyper Text Transfer Protocol,即超文本传输协议,规定了浏览器与服务器之间数据传输的规则,具体指客户端浏览器与服务器之间进行数据交互的数据格式。
在互联网的世界中,HTTP 就像是一座桥梁,连接着用户的浏览器和服务器。当我们在浏览器中输入一个网址,按下回车键后,浏览器就会通过 HTTP 协议向服务器发送请求,服务器接收到请求后,会根据请求的内容进行处理,并通过 HTTP 协议将响应数据返回给浏览器。
例如,当我们在浏览器中访问一个新闻网站时,浏览器会向服务器发送一个请求,请求中包含了我们要访问的页面的地址。服务器接收到请求后,会根据地址找到相应的页面内容,并将其封装成 HTTP 响应数据返回给浏览器。浏览器接收到响应数据后,会对其进行解析,并将页面内容展示给用户。
- 数据传输格式:主要包括请求数据的格式和响应数据的格式,浏览器和服务器需按照固定格式进行数据传输和解析,以明确双方意图。
这种固定的数据传输格式就像是一种约定俗成的语言,让浏览器和服务器能够顺利地进行交流。如果没有这种固定的格式,浏览器发送的请求可能会让服务器无法理解,服务器返回的响应也可能会让浏览器无法解析。
例如,当我们在浏览器中输入一个网址并按下回车键后,浏览器会按照 HTTP 请求数据的格式,将请求信息封装成一个特定格式的文本字符串,并发送给服务器。服务器接收到这个文本字符串后,会按照 HTTP 协议规定的格式进行解析,了解浏览器的请求意图。然后,服务器会根据请求的内容进行处理,并将响应数据按照 HTTP 响应数据的格式封装成又一个特定格式的文本字符串,返回给浏览器。浏览器接收到这个文本字符串后,也会按照 HTTP 协议规定的格式进行解析,展示服务器返回的内容。
特点
- 基于 TCP 协议:TCP 是面向连接的安全协议,每次请求前需进行三次握手,确保双方有收发能力后再传输数据,不易丢包更安全。
- TCP 协议的三次握手过程就像是两个人在打电话之前的确认过程。首先,浏览器向服务器发送一个连接请求,就像一个人拨打对方的电话。服务器接收到这个请求后,会向浏览器发送一个确认信息,就像对方接听电话并回应。最后,浏览器再向服务器发送一个确认信息,就像通话双方确认可以开始交流。通过这个三次握手过程,浏览器和服务器可以确保双方都能够正常收发数据,从而保证数据传输的可靠性。
- 由于 TCP 协议的可靠性,HTTP 协议在传输数据时也更加安全。不容易出现数据丢失的情况,确保用户能够顺利地获取到所需的信息。
- 基于请求-响应模型:一次请求对应一次响应,无请求则无响应。
- 这种请求响应模型就像我们在商店购物时的场景。我们向售货员提出请求(比如要买某个商品),售货员会根据我们的请求进行响应(比如拿出我们要的商品并告诉我们价格)。如果我们不提出请求,售货员也不会主动给我们提供商品或服务。
- 在 HTTP 协议中,浏览器向服务器发送请求,服务器根据请求的内容进行处理,并返回相应的响应数据。如果浏览器不发送请求,服务器也不会主动向浏览器发送数据。
- 无状态协议:每一次请求-响应都是独立的,后一次请求不会记录前一次请求数据,速度较快但多次请求之间不能进行数据共享,导致很多功能无法实现。
- HTTP 协议的无状态性使得每次请求都是独立的,服务器不会记住之前的请求和响应。这就像我们在不同的商店购物,每次购物都是独立的,商店不会记住我们之前的购物记录。
- 这种无状态性的优点是速度较快,因为服务器不需要记住大量的状态信息,可以更快地处理请求。这也带来了一些缺点,比如在一些需要多次请求之间进行数据共享的场景下,就会出现问题。
- 例如,在一个购物网站中,如果用户在登录后将商品加入购物车,然后再进行其他操作时,服务器由于无状态性,无法记住用户已经登录的状态和购物车中的商品信息。这就需要通过其他技术手段来解决这个问题,比如使用 Cookie 和 Session 等技术来实现状态的保持。
内容预告
接下来的学习路线:
- HTTP-请求协议
- HTTP-响应协议
- HTTP-协议解析
HTTP 协议中最重要的两块内容,即请求数据的格式和响应数据的格式。后面会先讲解请求数据的格式。
END
学习自:黑马程序员——JavaWeb课程