101 Switching Protocols
该代码是响应客户端的 Upgrade 标头发送的,并且指示服务器正在切换的协议。
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
200 OK
表明请求已经成功. 默认情况下状态码为200的响应可以被缓存。
204 No Content
服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。
304 Not Modified
强缓存:Last-Modified 和 If-Modified-Since
客户端请求一个文件(A)。 服务器返回文件A,并返回 Last-Modified。
客户端收到响应后,缓存文件A 和 Last-Modified。
客户端再次请求文件A 时,发现该文件有 Last-Modified ,那么 header 里包含 If-Modified-Since,这个时间就是缓存文件的 Last-Modified。
服务端收到请求,只需要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200
If-Modified-Since 的主要缺点是只能精确到秒的级别,一旦在一秒内出现多次修改,是无法判断出已修改的状态。所以一般用在对时间不太敏感的静态资源。
协商缓存:ETag 和 If-None-Match
客户端请求一个文件(A)。 服务器返回文件A,并在给A加上一个 ETag。
客户端收到响应后,并将文件连同 ETag 一起缓存。
客户再次请求文件A,会发送 If-None-Match,内容是缓存该文件A的 Etag 值
服务器检查该 ETag,和计算出来的 Etag 匹配,来判断文件是否未被修改。如果未修改就直接返回 304 和一个空的响应体。否则返回 200 和 文件。
当与 If-Modified-Since 一同使用的时候,If-None-Match 优先级更高(假如服务器支持的话)
400 Bad Request
语义有误,当前请求无法被服务器理解。 请求参数有误
404 Not Found
请求失败,请求所希望得到的资源未被在服务器上发现。
405 Method Not Allowed
表明服务器禁止了使用当前HTTP方法的请求。
500 Internal Server Error
表示所请求的服务器遇到意外的情况并阻止其执行请求。
502 Bad Gateway
表示作为网关或代理角色的服务器接收到的响应是无效的。
504 Gateway Timeout
表示网关或者代理角色的服务器无法在规定的时间内获得想要的响应。