HTTP协议用于客户端和服务器端之间的通信
请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端。
应用HTTP协议时,必定是一端担任客户端角色,另一端担任服务器端角色。
通过请求和响应的交换达成通信
HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并返回。
请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。
POST /form/entry HTTP/1.1
Host: hackr.jp
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 16
name=ueno&age=37
响应报文基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可选的响应首部字段以及实体主体构成。
HTTP/1.1 200 OK
Date: Thu, 6 Jun 21:12:01 GMT
Content-Length: 362
Content-Type: text/html
<html>
...
HTTP是不保存状态的协议
HTTP是一种不保存协议,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。
Client: 你之前发送了什么给我来着?
Server: 我想想,之前发送了什么给你来着?
**HTTP协议自身不具备保存之前发送过的请求或响应的功能。**这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把HTTP协议设计成如此简单的。
HTTP/1.1虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了Cookie技术。有了Cookie再用HTTP协议通信,就可以管理状态了。
请求URI定位资源
HTTP协议使用URI让客户端定位到互联网上的资源。
当客户端请求访问资源而发送请求时,URI需要将作为请求报文中的请求URI包含在内。指定请求URI的方式有很多。
- URI为完整的请求URI
GET http://hackr.jp/index.tem HTTP/1.1
- 在首部字段Host中写明网络域名或IP地址
GET /index.htm HTTP/1.1
Host: hackr.jp
除此之外,如果不是访问特定资源而是对服务器本身发起请求,可以用一个*来代替请求URI。
# 查询HTTP服务器端支持的HTTP方法种类
OPTION * HTTP/1.1
(最近更新:2019年09月18日)
本文详细介绍了HTTP协议的工作原理,包括客户端与服务器端的角色分配,请求与响应的交互过程,以及无状态协议的特点。同时,文章还讲解了如何通过URI定位资源,并提到了Cookie技术在状态管理中的作用。


被折叠的 条评论
为什么被折叠?



