在测试过程中发现网页返回了508.
看到508的第一反应,就是loop detected了。又因为最近有升级过https,所以以为是https的问题呢
最后发现是508是我们运维通过lua脚本返回的值。哎,坑死人呀
运维是通过Nginx+lua来返回错误码和错误信息的
可以看出来没有设置ngx.say(res.content);
所以就会出现 508 Loop Deteced
造成我们找问题的麻烦
附录
使用Nginx+lua返回错误码并且返回自定义内容。
具体查看 https://github.com/openresty/lua-nginx-module/issues/60
写道
"When status >= 200 (ngx.HTTP_OK), it will interrupt the execution of
the current Lua thread and returns status code to nginx.
"When status == 0 (ngx.OK), it will quits the current phase handler
(or content handler if content_by_lua directives are used). "
So the following should work and quit the whole request, though quite
unintuitive:
the current Lua thread and returns status code to nginx.
"When status == 0 (ngx.OK), it will quits the current phase handler
(or content handler if content_by_lua directives are used). "
So the following should work and quit the whole request, though quite
unintuitive:
ngx.status = 410
ngx.say("this link has expired")
ngx.exit(ngx.HTTP_OK)
写道
curl -v http://localhost:8090/blah.jpg
* About to connect() to localhost port 8090 (#0)
* Trying ::1... Connection refused
* Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 8090 (#0)
> GET /blah.jpg HTTP/1.1
> User-Agent: curl/7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.5
> Host: localhost:8090
> Accept: */*
>
< HTTP/1.1 410 Gone
< Server: nginx/1.0.6
< Date: Wed, 14 Sep 2018 17:15:57 GMT
< Content-Type: image/jpeg
< Transfer-Encoding: chunked
< Connection: keep-alive
<
this link has expired
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.0.6</center>
</body>
</html>
* Connection #0 to host localhost left intact
* Closing connection #0
* About to connect() to localhost port 8090 (#0)
* Trying ::1... Connection refused
* Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 8090 (#0)
> GET /blah.jpg HTTP/1.1
> User-Agent: curl/7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.5
> Host: localhost:8090
> Accept: */*
>
< HTTP/1.1 410 Gone
< Server: nginx/1.0.6
< Date: Wed, 14 Sep 2018 17:15:57 GMT
< Content-Type: image/jpeg
< Transfer-Encoding: chunked
< Connection: keep-alive
<
this link has expired
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.0.6</center>
</body>
</html>
* Connection #0 to host localhost left intact
* Closing connection #0
相关推荐
总结来说,Java发送HTTP请求涉及使用`java.net.HttpURLConnection`类,通过构造URL、设置请求属性、发送请求并解析响应内容来完成。封装这些操作到一个类中可以使代码更易于管理和复用。`HttpResponse`类则用于存储...
总结来说,QT通过其强大的网络模块提供了简单易用的接口来实现HTTP请求和响应。开发者可以利用这些功能创建各种网络应用,从简单的数据获取到复杂的文件上传下载。通过理解和实践QT的网络编程,你将能够更深入地掌握...
总结,HTTP请求辅助工具在软件开发、测试和网络调试中扮演着重要角色。它们简化了HTTP交互过程,提高了工作效率,是每个IT从业者不可或缺的工具。选择合适的工具,结合实际需求,将更好地服务于我们的工作。
### Java Filter 打印请求返回参数详解 #### 一、背景与目的 在Web开发过程中,经常需要在请求处理流程中增加一些通用的功能,比如日志记录、性能监控、安全控制等。Java Servlet规范提供了Filter机制来实现这些...
### C语言实现的HTTP请求知识点解析 #### 一、HTTP请求概述 在互联网通信中,HTTP(HyperText Transfer Protocol)是最常用的协议之一,用于客户端与服务器之间的数据交换。本示例代码展示了如何使用C语言来实现一...
总结起来,C#提供了多种方式来实现HTTP请求,包括使用WebRequest/WebResponse的经典方法和更现代的HttpClient。无论选择哪种方法,发送HTTP请求都是一项基础且至关重要的技能,对于开发涉及网络通信的应用程序至关...
总结起来,"http网络请求与解析"涉及到Android应用与服务器间数据交换的关键技术。通过选择合适的HTTP请求库和解析方法,开发者可以实现高效、稳定的网络通信。无论你是新手还是经验丰富的开发者,理解并掌握这些...
5. **异常处理**:在执行HTTP请求时,可能会遇到网络问题或其他异常,因此需要添加适当的异常处理机制,确保程序的健壮性。 在提供的源码文件`RequerstHelper.sln`中,可以看到整个项目解决方案,包含项目的配置、...
在Java编程语言中,发送HTTP请求是常见的网络通信任务,主要用到的是`java.net.URL`和`java.net.HttpURLConnection`这两个核心类。本篇将详细介绍如何使用Java原生API实现简单的HTTP请求。 首先,我们需要了解HTTP...
总结来说,C++在Linux环境下实现HTTP请求涉及网络编程基础、HTTP协议理解以及适当的库支持。GET和POST请求在结构上有区别,GET主要用于获取资源,而POST常用于提交数据。通过学习和实践这些知识点,开发者可以构建出...
RESTClient是一款专为开发者设计的轻量级工具,主要...总结,RESTClient作为一款强大的HTTP请求模拟器,是开发者测试和调试RESTful API不可或缺的工具。通过熟练掌握其使用,可以提升开发效率,确保API的质量和稳定性。
### 使用CURL发送HTTP请求详解 #### 一、引言 CURL,作为一个多功能的命令行工具,广泛应用于网络开发和脚本编程中,尤其在处理HTTP请求时表现出了强大的功能。本文旨在深入探讨如何利用CURL来发送HTTP请求,包括...
总结,HTTP是互联网的基础,理解其请求和响应机制对于开发Web应用程序至关重要。无论是手动配置HTTP请求还是编写代码实现,都需要对这些基础知识有清晰的认识。通过上述介绍,你应该能够更好地理解和应用HTTP协议...
总结,Android向Java后台发送请求并返回Json数据涉及的关键步骤包括选择网络请求库、设置请求参数、发送请求、处理响应以及解析Json数据。通过以上步骤,开发者可以实现Android客户端与后台服务的高效通信。在实际...
在MTK(MediaTek)平台上,使用Socket实现HTTP请求是一项常见的任务,特别是在开发嵌入式设备或物联网应用时。本文将深入探讨如何在MTK平台上通过Socket编程来发送HTTP请求,涉及的知识点包括Socket基本原理、HTTP...
HTTP请求返回415错误码,全称为"Unsupported Media Type",表示服务器无法处理客户端发送的请求中所携带的媒体类型。这个错误通常出现在客户端发送请求时,其`Content-Type`头部标识的媒体类型不受服务器支持。在...
总结起来,Fetcher是一款针对MacOSX平台的高效HTTP请求监控工具,它具备强大的自定义功能,支持配置文件保存,使得用户能够灵活地监控和调试网络请求。无论你是开发人员还是网络管理员,Fetcher都能成为你工作中的...
总结,POSTMAN作为一个强大的HTTP客户端工具,不仅方便了HTTP请求的发送,还提供了丰富的功能,如历史记录、集合管理、自动化测试、文档生成和环境管理,使得API的开发、测试和维护变得更加高效和便捷。无论你是...
总结,这个"HTTP异步请求数据Demo(C#)"涵盖了异步HTTP请求的基础知识,包括GET、POST、PUT和DELETE操作,以及JSON数据的处理。通过学习和理解这些概念,开发者可以更高效地构建与服务器交互的C#应用程序。在实际...
总结,`curl` 是一个功能强大的工具,可以方便地执行HTTP请求并处理响应。通过学习和熟练使用`curl`的各种选项,你可以在命令行环境中高效地进行Web服务的测试和数据抓取。在实际工作中,`curl`经常被开发者用来快速...