文章目录
1. 请求方法详解
常用请求方法:
GET、HEAD、PUT、TRACE、DELETE、OPTIONS。
注意:
-
HEAD和GET方法基本一致,只是HEAD不返回内容。当我们只是需要确定一个内容是否正常存在时,就可以使用HEAD。例如,当我们想要确认一张照片是否还存在时,就可以使用HEAD方法,不需要返回照片的内容。
例如:我们用GET方法发出请求时,会返回相应的内容:
而使用HEAD方法则不返回内容:
-
TRACE用法:当我们使用了代理,比如代理访问
news.163.com
,你想看看代理有没有修改我们的HTTP请求,我们可以用TRACE来测试一下,163.com
的服务器就会把最后收到的请求返回给我们。 -
虽然这些请求方法是HTTP协议里规定的,但WEB SERVER未必允许或支持这些方法。
-
OPTIONS用法:是返回服务器可用的请求方法。
2. 状态码与状态文字详解
-
状态码是用来反应服务器的响应情况的。
常见的如200 OK,404 NOT FOUND
-
状态文字是用来描述状态码的,便于人观察。
-
状态码的5个系列:
常用的状态码:
-
200 – 服务器成功返回网页
-
301/2 – 永久/临时重定向
举例:
302默认临时重定向:
我们先将04.php文件重定向到百度网站
当打开04.php文件时,我们可以看到302的状态码信息
301为指定永久重定向:
其中,true参数意指将301信息替换原来的头信息。
注意:
对于GET请求,重定向无所谓,能看到内容就行。但对于POST请求,比如将表单重定向到05.php,再将05.php重定向到06.php,此时会出现数据找不到的情况,那么如何解决这个问题呢?
我们使用307状态码,在重定向之后仍然使用POST请求,此时可以成功返回数据:
-
304 Not Modified – 未修改
客户端在向服务器发送请求信息时,会在请求头信息中加入一个时间戳和Etag(唯一资源标识符),当时间戳和Etag没有改变时,客户端就会告诉服务器可以在缓存中取出相应的响应信息。
例如,当客户端请求一张图片时,如果在时间戳(If-Modified-Since)之后图片没有发生改变,并且图片的Etag也没有发生改变,服务器就会在缓存中提取该图片,然后响应给客户端,此时返回的就是304的状态码。
-
307 – 重定向中保持原有的请求数据
-
404 – 请求的网页不存在
-
503 – 服务器暂时不可用
-
500 – 服务器内部错误
-
参考视频:https://www.bilibili.com/video/BV1js411g7Fw?p=2