当然可以。在HTTP协议中,有一个名为“Last-Modified”的响应头,它可以用来表示资源的最后修改时间。当客户端发送HTTP请求时,可以在请求头中添加“If-Modified-Since”字段,该字段的值为上次获取资源的“Last-Modified”时间。服务器收到请求后,会比较请求头中的“If-Modified-Since”时间和资源的实际最后修改时间。如果资源没有被修改过,服务器将返回HTTP状态码304(Not Modified),告诉客户端使用缓存中的资源。如果资源已经被修改过,服务器将返回HTTP状态码200(OK),并在响应头中包含新的“Last-Modified”时间。
以下是一个简单的示例:
import requests
url = 'https://example.com/file.txt'
# 发送请求,获取资源
response = requests.get(url)
# 获取资源的最后修改时间
last_modified = response.headers['Last-Modified']
# 再次发送请求,携带上次获取资源的最后修改时间
response = requests.get(url, headers={'If-Modified-Since': last_modified})
# 如果资源没有被修改过,返回HTTP状态码304
if response.status_code == 304:
print('资源没有被修改过')
else:
# 如果资源被修改过,返回HTTP状态码200,并在响应头中包含新的最后修改时间
print('资源被修改过')
last_modified = response.headers['Last-Modified']
需要注意的是,这种方法只能用于判断资源是否被修改过,如果需要获取资源的具体修改日期,可以使用其他方法,例如解析资源内容中的时间戳或者使用版本控制系统。
领取专属 10元无门槛券
手把手带您无忧上云