这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战
状态码
2xx(成功处理了请求)
200:服务器已成功处理请求,并提供了请求的网页 201:用户新建或修改数据成功 202:一个请求已经进入后台 204:用户删除成功
3xx(每次请求使用的重定向不要超过5次)
304:网页上次请求没有更新(与上次请求的内容一样),节省宽带和开销
4xx(标识请求可能出错,妨碍了服务器的处理)
400:服务器不理解请求的语法 401:用户没有权限(用户名或者密码输入错误) 403:用户得到权限(与401相反),但是访问被禁止 404:服务器找不到请求的网页
5xx(标识服务器在处理请求的时候发生内部错误)
500:服务器遇到错误,无法完成请求 503:服务器目前无法使用(超载或停机维护)
304缓存原理(添加Etag标签.last-modifined)
服务器首先产生Etag,用它来判断页面是否被修改。客户端通过该记号传回服务端要求服务器验证缓存,304是HTTP的状态码,不返回内容,浏览器接收到这个参数就会去浏览器找缓存文件流程:客户端请求页面A,服务端返回页面A,并在A上加一个Tage,客户端渲染页面,并把tage也存在缓存中。客户端在次请求页面A并将上次请求的资源和tage一起传递给服务器,服务器检查得到tage,并且判断上次请求的页面是否被修改,如果违背修改,则直接返回304
last-modified:客户端请求资源,同事会有一个last-modified的属性标记此文件在服务器的最后修改时间,客户端第二次请求次url时,根据http协议。浏览器会向服务器发送一个if-modified-since抱头,询问该时间之后此文件是否被修改过,没修改返回304
有了last-modified,为什么还要用ETag 1、因为如果在易绵中之内对一个文件进行两次更改,last-modified就会不正确(因为他不能识别秒单位的修改) 2、某些服务器不能精确的得到文件的最后修改时间 3、 两者互补,ETag判断的缺陷,比如一些图片等静态文件的修改 4、如果每次扫描内容都声称ETag‘进行比较的话,下然要比直接比较修改时间慢得多