我开始学习网络编程了。我读过forward
和redirect
的区别。但仍有两个问题没有完全理解:
- 在哪种情况下进程访问到服务器端,在哪种情况下没有服务器端? URL什么时候改变,什么时候不改变?当重定向时,URL是否总是改变 ?当转发时,URL是否永远不会改变 ?
它们不是硬性条款。
重定向通常意味着HTTP重定向,这是一个HTTP响应,指示客户端向不同的URI发出新的HTTP请求。
内部重定向是一种常见的重定向描述,它由web服务器/web应用程序/等内部处理,不会将浏览器发送到不同的URI。
Forward并不是一个特别常见的术语,但是当我遇到它时,通常是指内部重定向的一种形式。 重定向需要从浏览器到服务器再往返一次。 另一个区别是重定向反映在浏览器的地址栏forward没有Forward
发生在服务器端,服务器将相同的请求转发给另一个资源。而redirect
发生在浏览器端,服务器向浏览器发送http状态码302,因此浏览器发出新的请求。