HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

这篇具有很好参考价值的文章主要介绍了HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

认识 "状态码" (status code)

出现200

403 Forbidden

出现404 404 Not Found

出现 405 Method Not Allowed

出现 500 Internal Server Error

504 Gateway Timeout

302 Move temporarily

301 Moved Permanently

出现 "空白页面"  

出现 "无法访问此网站"


认识 "状态码" (status code)

状态码表示访问一个页面的结果 . ( 是访问成功 , 还是失败 , 还是其他的一些情况 ...).

出现200

这是一个最常见的状态码 , 表示访问成功 .
抓包抓到的大部分结果都是 200
例如访问搜狗主页
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 10 Jun 2021 06:07:27 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Encoding
Set-Cookie: black_passportid=; path=/; expires=Thu, 01 Jan 1970 00:00:00 
GMT; domain=.sogou.com
Pragma: No-cache
Cache-Control: max-age=0
Expires: Thu, 10 Jun 2021 06:07:27 GMT
UUID: 80022370-065c-49b0-a970-31bc467ff244
Content-Length: 14805
<!DOCTYPE html><html lang="cn"><head><meta name="viewport" 
content="width=device-width,minimum-scale=1,maximum-scale=1,userscalable=no"><script>window._speedMark = new Date(); window.lead_ip = 
'1.80.175.234';
......
注意 : 在抓包观察响应数据的时候 , 可能会看到压缩之后的数据 , 形如
HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 网络传输中 "带宽" 是一个稀缺资源, 为了传输效率更高往往会对数据进行压缩.

点击 Fiddler 中的即可进行解压缩, 看到原始的内容 .
HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 文章来源地址https://www.toymoban.com/news/detail-500070.html

403 Forbidden

表示访问被拒绝 . 有的页面通常需要用户具有一定的权限才能访问 ( 登陆后才能访问 ). 如果用户没有登陆直接访问, 就容易见到 403.
例如 : 查看码云的私有仓库 , 如果不登陆 , 就会出现 403. 参考链接 : https://gitee.com/HGtz2222/blog_python
HTTP/1.1 403 Forbidden
Date: Thu, 10 Jun 2021 06:05:36 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Keep-Alive: timeout=60
Server: nginx
Vary: Accept-Encoding
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-UA-Compatible: chrome=1
Expires: Sun, 1 Jan 2000 01:00:00 GMT
Pragma: must-revalidate, no-cache, private
Cache-Control: no-cache
Set-Cookie: oschina_new_user=false; path=/; expires=Mon, 10 Jun 2041
06:05:40 -0000
Set-Cookie: gitee-session
n=ejEvQnYza2RlaXh0KzRaN3QrNWI2TzdLOE03bU5UNjRKdGlqWUFkMlJ2YktWYTRtcEtIVExOZ
EdJSFJFSkdiWmcxNmhjSTdneUZFaHFtalNKQUJWcDlUNDZYd2lBaElXNy9FaWRHQkl4d2RsS1RI
WnRCNFphQm5JUjZOdjdsSDh5TlNvZ3hZdTBXNXUrU2c2azN2UVNFOWwyQnJvQzZ6MEluaEFFYnR
oV0luOFlNWEEzWlR0K1g4WDlQRjNkSlNjZ1pUMGc0YkhreVNJMUV4YkVUUk0weXFqbGhQYzN5dj
A2bFJyc3o4MHRVWkkxcHdQVG5abmJ2NmlqV1dEYjlWaUpNNno3UGFpZ3lsb1RqeXAranFHRlE9P
S0tdU5JMGZ3UUpwODRYdjF1MXdyYmFKUT09-
-52babe9c2dcb63fa02bc32d25bc0e854f4065f5f; domain=.gitee.com; path=/;
HttpOnly
X-Request-Id: 82a740fb98838c305c4cc597ab6f48c0
X-Runtime: 0.020299
Content-Length: 7092
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>您的访问受限 (403)</title>
......

出现404 404 Not Found

404表示用户访问的资源不存在,大概率是URL的路径写的不正确

错误实例 1 : 少写了 Context Path
通过 /hello 访问服务器
HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 

错误实例 2 : 少写了 Servlet Path
通过 /ServletHelloWorld 访问服务器
HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 

错误实例 3: Servlet Path 写的和 URL 不匹配
修改 @WebServlet 注解的路径
HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 

重启 Tomcat 服务器 .
URL 中的路径写作 "/hello" , 而代码中写作的 Servlet Path "/helloServlet", 两者不匹配 .
HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 

错误实例 4: web.xml 写错了
清除 web.xml 中的内容
HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 

重启 Tomcat 服务器 .
通过浏览器访问 URL, 可以看到 :
HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 

Tomcat 启动的时候也有相关的错误提示
HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 

出现 405 Method Not Allowed

405 表示对应的 HTTP 请求方法没有实现.
HTTP 中所支持的方法 , GET, POST, PUT, DELETE .
但是对方的服务器不一定都支持所有的方法 ( 或者不允许用户使用一些其他的方法 ).
错误实例 : 没有实现 doGet 方法 .
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
}

重启 Tomcat 服务器.

在浏览器中访问 , 可以看到 :
HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 

在浏览器地址栏直接输入 URL , 会发送一个 HTTP GET 请求 .
此时就会根据 /ServletHelloWorld/hello 这个路径找到 HelloServlet 这个类 . 并且尝试调用
HelloServlet doGet 方法 .
但是如果没有实现 doGet 方法 , 就会出现上述现象.

出现 500 Internal Server Error

往往是 Servlet 代码中抛出异常导致的.
服务器出现内部错误 . 一般是服务器的代码执行过程中遇到了一些特殊情况 ( 服务器异常崩溃 ) 会产生这个状态码.
咱们平时常用的网站很少会出现 500 ( 但是偶尔也能看到 ).
错误实例 :
修改代码
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
        String s = null;
        resp.getWriter().write(s.length());
   }
}
重启 Tomcat 服务器 .
重新访问页面 , 可以看到 :
HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 在页面上已经有具体的异常调用栈.

异常信息里已经提示了出现异常的代码是 HelloServlet.java 的第 13 .

resp . getWriter (). write ( s . length ());
仔细检查这里的代码就可以看到空指针异常。

504 Gateway Timeout

当服务器负载比较大的时候 , 服务器处理单条请求的时候消耗的时间就会很长 , 就可能会导致出现超时的情况.
这种情况在双十一等 " 秒杀 " 场景中容易出现 , 平时不太容易见到 .

302 Move temporarily

临时重定向 .
理解 " 重定向 "
就相当于手机号码中的 " 呼叫转移 " 功能 .
比如我本来的手机号是 186-1234-5678, 后来换了个新号码 135-1234-5678, 那么不需要让我的朋友知道新号码,
只要我去办理一个呼叫转移业务 , 其他人拨打 186-1234-5678 , 就会自动转移到 135-1234-5678上.
在登陆页面中经常会见到 302. 用于实现登陆成功后自动跳转到主页 .
响应报文的 header 部分会包含一个 Location 字段 , 表示要跳转到哪个页面 .
例如: 码云的登陆页面 https://gitee.com/login
抓包看到的响应结果:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>您的访问受限 (403)</title>
......

可以看到 header 中的 Location: https://gitee.com/HGtz2222 , 接下来浏览器就会自动发送
GET 请求, 获取 https://gitee.com/HGtz2222
301 Moved Permanently
永久重定向. 当浏览器收到这种响应时, 后续的请求都会被自动改成新的地址. 
301 也是通过 Location 字段来表示要重定向到的新地址. 
状态码小结
HTTP/1.1 302 Found
Date: Thu, 10 Jun 2021 06:49:26 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Keep-Alive: timeout=60
Server: nginx
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-UA-Compatible: chrome=1
Expires: Sun, 1 Jan 2000 01:00:00 GMT
Pragma: must-revalidate, no-cache, private
Location: https://gitee.com/HGtz2222
Cache-Control: no-cache
Set-Cookie: oschina_new_user=false; path=/; expires=Mon, 10 Jun 2041 
06:49:24 -0000
Set-Cookie: gitee_user=true; path=/
Set-Cookie: gitee-sessionn=UG5CdVZQUkVUamxsWis3b0JoL2dyTDRLVTk1WXVCK2VwaGd0OGFKdjBjdjB4K0RiWTh2ZmhrZ
GM1cU0vOFN2VGdNcVY5dU5rSzZHeVFBcVZ3OTBaSmZmZzRYQUdsa2tHMnFIeU9SQlN4Z2pleDNM
Y3ExZUF6QWpHTHlVeTZOWFVHSVBxbTVuZGJpandHekdaRVBTUVd0ejZUNHNvTllSODBiNHd6NWN
CRUZ0UzZCZW1mRTBZUUdmOE5JTWVKdnJMMzdQcHFBMk5nUmNjMWpmc3daTElYU2hhbkEwQm41NH
NlZ2RwM3QxSjZMTndSNjcyNDd6YUVoS0ZmUWpLTDQ2KzlzZVowZTFLaUNPTmVDajVOb2k0MWFRc
GkzWVQ2QUxuWXJLeTRqL2JHaUE9LS0xYlVDOWVkc0JiM2xucVk0am1LRHFnPT0%3D-
-58854ce81d6c67bb7b9a0fdd6fe18a8ebdb3d753; domain=.gitee.com; path=/; 
HttpOnly
X-Request-Id: d45ade01dbeffc99a3688d3411b3381f
X-Runtime: 0.133587
Content-Length: 92
<html><body>You are being <a 
href="https://gitee.com/HGtz2222">redirected</a>.</body></html>
可以看到 header 中的 Location: https://gitee.com/HGtz2222 , 接下来浏览器就会自动发送
GET 请求, 获取 https://gitee.com/HGtz2222

301 Moved Permanently

永久重定向 . 当浏览器收到这种响应时 , 后续的请求都会被自动改成新的地址 .
301 也是通过 Location 字段来表示要重定向到的新地址 .

出现 "空白页面"  

错误实例 :
修改代码 , 去掉 resp.getWritter().write() 操作 .
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
   @Override
   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
       System.out.println("hello");
  }
}

重启服务器, 访问服务器, 可以看到一个空白页面:

HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 

抓包可以看到 , 响应 body 中的内容就是 " 空数据 "
HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 

出现 "无法访问此网站"


一般是 Tomcat 启动就失败了.

错误实例: Servlet Path 写错了.

HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 

应该写作 "/hello", Tomcat 在启动的时候已经提示了相关的错误 .
Tomcat 启动的日志里面报错信息可能比较多 , 需要耐心观察 , 找到关键的提示 .
HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 看到的现象:

HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),

 

熟悉 HTTP 协议能够让我们调试问题事半功倍 .
  • 4xx 的状态码表示路径不存在, 往往需要检查 URL 是否正确, 和代码中设定的 Context Path 以及Servlet Path 是否一致.
  • 5xx 的状态码表示服务器出现错误, 往往需要观察页面提示的内容和 Tomcat 自身的日志, 观察是否存在报错.
  • 出现连接失败往往意味着 Tomcat 没有正确启动, 也需要观察 Tomcat 的自身日志是否有错误提示.
  • 空白页面这种情况则需要我们使用抓包工具来分析 HTTP 请求响应的具体交互过程.

HTTP项目常见状态码笔记(200,302,400,403,404,405,500...), 

 

到了这里,关于HTTP项目常见状态码笔记(200,302,400,403,404,405,500...),的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • servlet常见http状态报错:HTTP状态404: 请求的资源[/exp01/FirstServlet]不可用

    报错内容如图: 解决如下: 方式一: 加注解 @WebServlet (1) 加注解之前要开启注解支持 ,否则依旧报错 注解支持在web.xml 文件中 ,设置 metadata-complete=“false” 多提一嘴:web.xml文件自动生成的头文件可能 version版本 不太够,也会出一些,所以建议,用以下的代码替换: (

    2024年02月15日
    浏览(37)
  • 403错误是一种常见的HTTP状态码,表示服务器拒绝了请求

    403错误是一种常见的HTTP状态码,表示服务器拒绝了请求。出现403错误通常意味着客户端没有访问所请求资源的权限。以下是导致403错误的几个可能原因以及相关的编程示例: 权限配置错误:403错误可能是由于服务器权限配置错误导致的。在某些情况下,服务器可能需要用户

    2024年02月04日
    浏览(53)
  • 计科web常见错误排错【HTTP状态404、导航栏无法点开、字符乱码及前后端数据传输呈现、jsp填写的数据传到数据库显示null、HTTP状态500】

    =======web排错记录====== 在使用javaweb的过程中会出现的一些错误请在下方目录查找。 目录 错误1:HTTP状态404——未找到 错误2:导航栏下拉菜单无法点开的问题 错误3:字符乱码问题 错误4:jsp网页全部都是??? 错误5:修改数据库后网页呈现无变化  错误6:jsp填写的数据传到

    2024年02月16日
    浏览(35)
  • 关于http状态码302 请求重定向 前后端数据交互http302

    项目中前端都会统一处理后端返回的状态码给出提示需要在全配置axios拦截器 但是像302这种问题我们是捕捉不到的因为当状态是302时浏览器会根据redirectUrlt进行跳转 这就很难受 302表示临时性重定向 访问一个URL时被重定向到另一个url上 一般页面跳转时候会遇到 他与301的区别

    2024年02月16日
    浏览(32)
  • http状态码301、302、303、307、308区别

    3xx开头的状态码都表示重定向。 先说明一些版本问题, 301和302都是http1.0就定义好的,在http1.1中才新增了 其余的状态码。 301 Moved Permanently 永久重定向 在请求的 URL 已被移除时使用。响应的 Location 首部中应该包含 资源现在所处的 URL。 默认情况下,永久重定向是会被浏览器

    2024年02月03日
    浏览(76)
  • Jenkins 页面部分显示Http状态403 被禁止

    前言 生产环境Jenkins部署了一段时间了,结果今天在流水线配置中,部分页面显示Jenkins 页面部分显示Http状态403 被禁止,修改配置点击保存之后偶尔也会出现这个。 以下是问题图片 在全局安全配置里面,勾选上启用代理兼容即可 问题解决了!记录一下。 解释一下:跨站请求

    2024年02月06日
    浏览(44)
  • vue 部分网络图片加载失败,控制台报错,http状态码403

    vue项目中有时候请求网络地址的图片http状态码会报403错误 原因: 1.http请求头中有一个referrer字段,用来表示发起http请求的源地址信息 2. 服务器端在拿到这个referrer值后判断请求是否来自本站 若不是则返回403,从而实现图片的防盗链。上面出现403就是因为,请求的是别人服务

    2024年02月14日
    浏览(51)
  • http常用状态码(204,304, 404, 504,502)含义

    网络状态码含义,常用(204,304, 404, 504,502) 200 – 服务器成功返回网页  404 – 请求的网页不存在  503 – 服务不可用  常见HTTP状态码大全  1xx(临时响应)  表示临时响应并需要请求者继续执行操作的状态代码。  代码 说明  http状态码 100 (继续) 请求者应当继续提出

    2023年04月22日
    浏览(44)
  • Servlet出现“HTTP状态 404 - 未找到”问题解决方案(特例)

    在使用新版本的IDEA时,使用Jakarta EE创建模板Web应用程序后,在访问Hello Servlet时出现404 Not found。 这里我使用的是Tomcat 9.0.x的应用服务器,在代码逻辑完全没有问题的情况下,依然出现404 Not found。 在与之前的代码对比之后,发现在使用以下依赖会导致这样的情况。 修改为以

    2024年02月04日
    浏览(39)
  • 【网络应用开发】实验2--JSP技术及应用(HTTP状态400错误的请求的解决方法)

    目录 JSP技术及应用预习报告 一、实验目的 二、实验原理 三、实验预习内容 JSP技术及应用实验报告 一、实验目的 二、实验要求 三、实验内容与步骤 1. 创建一个名为exp02的Web项目,创建并执行下面JSP页面,文件名为counter. jsp 2. errorPage属性和isErrorPage属性的使用。 高亮重点 

    2023年04月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包