图解HTTP:请求报文与响应报文

本文详细介绍了HTTP协议的工作原理,包括客户端与服务器端的角色分配,请求与响应的交互过程,以及无状态协议的特点。同时,文章还讲解了如何通过URI定位资源,并提到了Cookie技术在状态管理中的作用。

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日)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值