整理面试中经常被问到的状态码,首先要知道以1,2,3,4,5开头分别表示什么意思。
1XX Informational
信息性状态码,表示接受的请求正在处理
2XX Success
成功状态码,表示请求正常处理完毕
3XX Redirection
重定向状态码,表示需要客户端需要进行附加操作
4XX Client Error
客户端错误状态码,表示服务器无法处理请求
5XX Server Error
服务器错误状态码,表示服务器处理请求出错
然后可能会问几个具体数字分别代表什么意思,整理如下:
200 OK
301 Movied Permanently 永久性重定向
302 Found 临时性重定向
304 Not Modified
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error
503 Service Unavailable
504 Gateway timeout 网关超时(之前一直觉得5开头的问的比较少,后来连续面了两场都问到这个)
补充304缓存的原理:
服务器首先产生ETag,服务器可在稍后使用它来判断页面是否已经被修改。本质上,客户端通过将该记号传回服务器要求服务器验证其(客户端)缓存。304是HTTP状态码,服务器用来标识这个文件没修改,不返回内容,浏览器在接收到个状态码后,会使用浏览器已缓存的文件客户端请求一个页面(A)。 服务器返回页面A,并在给A加上一个ETag。客户端展现该页面,并将页面连同ETag一起缓存。 客户再次请求页面A,并将上次请求时服务器返回的ETag一起传递给服务器。 服务器检查该ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304(未修改——Not
Modified)和一个空的响应体。