最近在学习计算机网络以及JavaWeb,对Http响应协议和跳转的几种方式以及跳转的状态码有一些自己的总结认识:
-
第一次访问一个地址并访问成功:200
-
不是第一次访问一个地址:
- 对于浏览器中的缓存,服务器端无变化:304
- 浏览器端缓存的页面已经在服务器端发生改变:200(这里我在服务器端已经修改了login.html,再次访问就会是200:)
- 对于浏览器中的缓存,服务器端无变化:304
-
跳转的两种方式(假定从login.html页面跳转至fail.html/success.html页面):
- 服务端跳转:浏览器地址栏的地址url不发生改变,会在服务器内部访问目标地址,并返回文件对象,且跳转前页面(Login)的状态码为:200,没有跳转后页面(fail/success)的数据,
此时刷新浏览器页面会报错!
服务端跳转: - 客户端跳转(2种方式)
- 临时客户端跳转(普通的、默认客户端跳转方式)
- 对于跳转前(Login)页面:302:重定向,表示二次跳转
- 对于跳转后页面(fail/success)(200/304)
参照是不是第一次访问和缓存是否修改
临时客户端跳转:
- 永久客户端跳转
- 对于跳转前(Login)页面:301 , 表示永久客户端跳转, 涉及SEO范畴(301跳转SEO详情)
- 对于跳转后页面(fail/success)(200/304)
参照是不是第一次访问和缓存是否修改
永久客户端跳转:
- 临时客户端跳转(普通的、默认客户端跳转方式)
- 服务端跳转:浏览器地址栏的地址url不发生改变,会在服务器内部访问目标地址,并返回文件对象,且跳转前页面(Login)的状态码为:200,没有跳转后页面(fail/success)的数据,
-
404:请求的资源没有找到,说明客户端错误的请求了不存在的资源;
-
500:请求资源找到了,但服务器内部出现了错误;