Http常见的状态码、重定向和转发的区别

一、Http常见的状态码:
2**(成功) 操作被成功接受并处理

200 OK 请求成功,一般用于Get和Post请求。

3**(重定向) 需要进一步操作完成请求,结合头部信息location字段,指定重定向地址

307 临时重定向

4** (客户端错误)请求包含语法错误或无法完成的请求

400 客户端请求语法错误,服务端无法理解请求的语法。
403 服务端拒绝请求
404 服务端无法根据客户端的请求找到资源(网页或后台服务)

5**(服务器错误)服务器在请求过程中发生了错误

500 服务器内部错误,无法完成请求。

二、重定向和转发:
1、实现原理:
  • 重定向:返回3**状态码+location响应头;浏览器跳转到location所在的URL。
  • 转发:当次Http请求,直接获取要转发的URL地址并返回。
重定向是在客户端进行跳转。

在这里插入图片描述

转发是在服务端进行跳转。

在这里插入图片描述

2、跳转次数:

重定向跳转2次;转发跳转一次。

3、URL是否会改变

重定向URL会改变;跳转URL不会改变。

4、请求数据是否会丢失

请求重定向的URL时,会丢失第一次的请求数据;
转发URL,或携带第一次请求的数据,不会丢失。

5、重定向和转发使用的方法。

重定向:

//request.getContextPath()获取项目部署名,/main.html为服务路径
resp.getRedirect(request.getContextPath()+"/main.html");

转发:

req.getRequestDispatchar("/error.html").forward(req,resp);
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
服务器可以通过HTTP协议中的重定向和代理来实现重定向转发请求。 重定向是指服务器返回一个HTTP响应,其中包含一个重定向的URL地址,客户端浏览器会自动向该URL重新发起请求。常见重定向状态码有301和302。 转发请求是指服务器代理客户端浏览器向其他服务器发起请求,并将响应返回给客户端浏览器。常见的代理服务器有Nginx和Apache。 以下是一个基于Node.js的HTTP服务器示例,实现了重定向转发请求: ```javascript const http = require('http'); const url = require('url'); const request = require('request'); const server = http.createServer((req, res) => { const reqUrl = url.parse(req.url, true); if (reqUrl.pathname === '/redirect') { res.writeHead(302, { 'Location': 'https://www.baidu.com/' }); res.end(); } else if (reqUrl.pathname === '/proxy') { const proxyUrl = 'https://www.baidu.com' + reqUrl.path; request(proxyUrl).pipe(res); } else { res.writeHead(404); res.end(); } }); server.listen(8080, () => { console.log('Server running at http://localhost:8080/'); }); ``` 当客户端浏览器访问`http://localhost:8080/redirect`时,服务器会返回302状态码重定向的URL地址`https://www.baidu.com/`,客户端浏览器会自动向该URL重新发起请求。 当客户端浏览器访问`http://localhost:8080/proxy`时,服务器会代理客户端浏览器向`https://www.baidu.com`发起请求,并将响应返回给客户端浏览器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值