HTTP协议的状态码,大的方面来说,分为5类,分别是1xx,2xx,3xx,4xx,5xx。而在项目开发中,最为常见的状态码有这么几个:
101:这个状态码,表示临时状态码,表示请求已经接受,服务器正在处理(之前项目中,使用websocket时见到这个状态码)
200:这个状态码,是最常见的,表示请求成功。
302:表示重定向。
401:表示此次请求需要用户身份认证,未认证就响应401.
404:表示服务器无法找到对应的资源(请求路径找不到)
500:服务器内部错误。
转发 与 重定向的区别?
这个在现在的前后端分离开发中,基本上就不存在对应的转发操作 和重定向操作了
转发是指服务器收到用户请求后,在服务器端将请求转发给另一个资源进行处理,然后将处理结果返回给用户,用户并不知道这个过程,是服务器内部完成的,整个过程只有一次请求。
重定向是指当用户访问某个URL时,服务器返回一个特殊的响应码(3xx),并通过响应头(Location)告诉浏览器需要跳转到另一个URL。浏览器收到重定向响应后,会向新的URL发起新的请求,然后显示新页面的内容。整个过程对于浏览器来说是两次请求。
总的来说,重定向是在客户端发生的,浏览器需要重新发送请求;而转发是在服务器端发生的,对于客户端来说是透明的。
Cookie会话跟踪的原理?
会话跟踪的方案有很多,比如像 Cookie、Session、以及令牌技术,都可以进行会话跟踪Cookie是属于客户端会话跟踪方案,是存储在客户端浏览器的。 当我们第一次访问服务器的时候,服务器会创建Cookie,并在响应头 set-Cookie 中将Cookie响应给浏览器,浏览器接收到响应头之后,会自动将Cookie的值存储在浏览器中。
然后在后续的每一次请求中,浏览器都会自动的获取浏览器存储的Cookie值,并在请求头 Cookie 中将其携带到服务器,服务器就可以获取到Cookie中的数据了,从而完成会话跟踪所以,总的来说,Cookie会话跟踪的原理,其实就是HTTP协议中规定的两个头信息:一个是响应头SetCookie,一个是请求头 Cookie。 但是由于Cookie存储在客户端浏览器,所以这种会话跟踪方案其实并不安全因为用户是可以操作Cookie的(比如用户可以自己删除、禁用Cookie)