这些天我注意到我在项目中使用的Youtube API已不再可用,例如
https://gdata.youtube.com/feeds/api/videos/dLEk9yiXVQs?v=2
返回HTTP 410响应代码,这意味着请求的资源不再可用,并且将不再可用.
我应该用什么呢?
向iOS用户发送通知时,对于其中一些用户,我会收到响应状态码400(BadDeviceToken)或代码410(未注册).
从Apple关于"BadDeviceToken"的文档:
指定的设备令牌很糟糕.验证请求是否包含有效令牌以及令牌是否与环境匹配.
"坏"是什么意思?我知道设备令牌在某些时候是有效的.用户如何使其设备令牌变坏?
从关于"未注册"的文档:
设备令牌对于指定的主题处于非活动状态.
这是否意味着应用程序已被删除?或者这种反应可能还有其他原因.
apple-push-notifications http-headers ios http-status-code-400 http-status-code-410
我正在创建一个公告板系统,现在我正在为管理员实现一个"删除主题"功能.如果有人打开已删除的主题,服务器找不到它,所以它必须是404.另一方面,主题已经存在,所以我必须使用410.实现410将需要一个名为deleted_topics的新表,所以会需要更多空间.但是,410我觉得搜索引擎更好.你怎么看?我应该使用404还是410?
服务器未找到与Request-URI匹配的任何内容.没有说明该病症是暂时的还是永久性的.如果服务器通过一些内部可配置的机制知道旧资源永久不可用且没有转发地址,则应该使用410(Gone)状态代码.当服务器不希望确切地说明请求被拒绝的原因,或者没有其他响应适用时,通常会使用此状态代码.
请求的资源在服务器上不再可用,并且不知道转发地址.预计这种情况将被视为永久性的.具有链接编辑功能的客户端应该在用户批准后删除对Request-URI的引用.如果服务器不知道或无法确定条件是否是永久性的,则应该使用状态代码404(未找到).除非另有说明,否则该响应是可缓存的.
410响应主要用于通过通知接收方资源是故意不可用的以及服务器所有者希望移除到该资源的远程链接来辅助web维护的任务.这种事件对于限时,促销服务以及属于不再在服务器站点工作的个人的资源是常见的.没有必要将所有永久不可用的资源标记为"已消失"或将标记保留任何时间长度 - 这由服务器所有者自行决定.
谢谢,
seo http http-status-codes http-status-code-404 http-status-code-410
我的网站上有一个名为博客的文件夹.我永久删除了它.我想410它.我如何410整个文件夹?
例如我的网站看起来像这样
example.com/blog/mycoolpost1/
example.com/blog/mycoolpost2/
example.com/blog/mycoolpost3/
example.com/blog/mycoolpost4/
Run Code Online (Sandbox Code Playgroud)
现在帖1,2,3,4,已经死了.
那么如何指定博客之后的所有内容都被永久删除.(以及文件夹'博客'本身)
我需要像这样的htaccess系列......?
重定向410 /blog/?(.*)
我想为我的一些Django页面返回410错误,而不是返回404.基本上,raise Http404('some error message')我不想打电话,而是打电话给raise Http410('some error message')快捷方式.
我很困惑因为在django.http中,函数Http404很简单:
class Http404(Exception):
pass
Run Code Online (Sandbox Code Playgroud)
所以,如果我做同样的事情并创建我的Http410函数,我会认为它看起来像:
class Http410(Exception):
pass
Run Code Online (Sandbox Code Playgroud)
但是,这样做会返回异常,但会提供500错误页面.如何重新创建Http404异常的魔力?我应该注意,我需要从我的模型(而不是视图)中引发异常,所以我不能只返回一个HttpResponseGone.
提前致谢!
更新:我完全了解HttpResponseGone,并在我原来的问题中提到了这一点.我已经知道如何在我的观点中返回这个.我的问题是:你如何提出一个Http 410异常与你如何引发Http 404异常类似?我希望能够在任何地方提出这个例外,而不仅仅是在我的观点中.谢谢!
python django error-handling httpresponse http-status-code-410
我想为执行一些数据库查找的页面抛出 410 状态代码。然而,outputcache 似乎只缓存 200 个状态代码页。有没有办法解决?我想将 410 页缓存一段时间,这样数据库就无法获取它,但它只是跳过缓存并再次访问数据库。
[OutputCache(Duration = 3600, VaryByParam = "eventid,teamid,v,r")]
public virtual ActionResult Team(int? teamId, int? eventId)
{
Run Code Online (Sandbox Code Playgroud) 在过去的几天里,关于Meta的删除问题进行了大量讨论.一个提出如何处理删除现在被视为偏离主题的问题的建议向所有人展示了一些流行的删除问题 - 灰色外观是10k +用户在查看已删除的问题时得到的.
在这种情况下,背景是灰色的,没有可能的交互,但所有内容仍然可访问:

我建议页面可以同时发送一个404 not found或者410 gone如果压倒性的愿望是将它们从搜索索引逐步发出.
因此将显示内容,但会发送4xx状态代码.
然而,有一个批评这个想法的评论:
嗯,为什么在公开链接时发送404?你打破了404代码的语义
我倾向于不同意:响应体中显示的内容(为了满足我们人类的好奇心)并不重要,是吗?机器可以使用4xx.
谁是对的?
http http-status-codes http-headers http-status-code-404 http-status-code-410
在标准的LAMP应用程序上,我使用.htaccess规则将人们发送到我的404页面,如下所示:
ErrorDocument 404 http://www.mydomain.com/404.php
Run Code Online (Sandbox Code Playgroud)
我们使用从文件系统读取文件的php文件提供动态图像,我刚刚注意到,当从应用程序中删除图像时我们没有选择这样的图像,因此请求http://www.mydomain. com/image_4.jg(例如)使用mod_rewrite调用image.php不会将用户重定向到404页面,因为动态图像文件将始终存在.在这种情况下,我知道我应该使用404,但我不知道在哪里.
显然我知道我需要在删除图像时手动将标题重定向插入到404.php页面,但实际上我应该使用此重定向发送404标题吗?看看代码,我们的404.php页面实际上已经发送了一个404标头,("HTTP/1.1 404 Not Found");这是我们的SEO团队几年前指示的,不确定这是否正确?这对我来说似乎是违反直觉的,因为它几乎意味着404页面本身尚未找到.
我想这是2个问题:
编辑
实际上似乎无法同时发送404和重定向,例如这会导致Chrome显示"糟糕!此链接似乎已损坏".信息
header( "Location: /404.php", true, 404 );
Run Code Online (Sandbox Code Playgroud)
如果你打破这样的标题,它也无法正常工作
header("HTTP/1.1 404 Not Found");
header("Location: /404.php" );
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果您查看标题,它会发送302后跟404.在这种情况下是否足以发送没有重定向的标头?也许只是按照一些人的推荐发送410?
php seo http-headers http-status-code-404 http-status-code-410
我正在ReST API(构建在ServiceStack上)上实现DELETE支持,并想知道在成功删除DELETE后要返回的响应代码.
HTTP将410定义为:
请求的资源在服务器上不再可用,并且不知道转发地址.预计这种情况将被视为永久性的.具有链接编辑功能的客户端应该在用户批准后删除对Request-URI的引用.如果服务器不知道或无法确定条件是否是永久性的,则应该使用状态代码404(未找到).除非另有说明,否则该响应是可缓存的.
现在,如果一个资源刚刚出现DELETE,我可能确实希望应用这些建议中的许多......但是接受的实践似乎正在回归200 OK成功DELETE- 特别是因为该4XX范围应该表示错误条件.
除了HTTP规范中的指南之外,还有哪些令人信服的论据?
我正在创建一个电子商务网站,我以前一直使用 Magento,但现在改为自定义构建的网站。
在这个网站上,我创建了一个名为 的页面create_account.php,这在一段时间内表现良好并且运行良好,但随后它开始抛出我以前从未见过的 410 错误。做了一些研究,可以发现这表明该文件确实存在,但不再存在。
我认为很公平,也许 Magento 有一个同名的文件,并且它有该文件被删除的记录,因此它停止读取我的文件,所以我将创建它的副本,将其命名为其他名称并更改对此的所有引用文件更改为新名称account_create.php,并在我的文件中放入一行.htaccess,以将可能会转到第一个文件的用户重定向到我的新文件,但我将原始文件留在了服务器上。
这在多台计算机/浏览器/网络等上运行了一段时间(我谈论的是几天而不是几小时/分钟),但后来发生了同样的事情。这次我认为这不可能是 Magento 留下的东西或服务器仍然有记录的其他东西,但如果上次修复有效,我会尝试一下,看看效果如何。
现在,这种情况已经发生了 6 次,同一个文件有 6 个不同的文件名,在一个月内它运行了几天,然后服务器说该文件消失了。然而,所有 6 个文件仍然位于我服务器的主目录中。我有一个带有新名称的第七个版本,目前正在运行,但我不抱希望,我的.htaccess文件变得很荒谬。
RewriteRule ^create_account/?$ create.php [L,NC,QSA]
RewriteRule ^createaccount/?$ create.php [L,NC,QSA]
RewriteRule ^accountcreate/?$ create.php [L,NC,QSA]
RewriteRule ^account_create/?$ create.php [L,NC,QSA]
RewriteRule ^account_creation/?$ create.php [L,NC,QSA]
RewriteRule ^accountcreation/?$ create.php [L,NC,QSA]
Run Code Online (Sandbox Code Playgroud)
我开始怀疑实际的文件本身,尽管在 WAMP 上本地一切都工作正常,并且在这种情况发生之前它可以正常工作一段时间。这是该文件的内容:
<?php
$active_country_id = $_SESSION["active_country_id"];
$active_country_name = $_SESSION["active_country_name"];
$active_country_code = $_SESSION["active_country_code"];
$active_country_currency = $_SESSION["active_country_currency"];
$active_country_vat = $_SESSION["active_country_vat"];
$active_country_braintree = $_SESSION["active_country_braintree"];
$message = "";
$first_name = "";
$last_name …Run Code Online (Sandbox Code Playgroud) http ×3
http-headers ×3
.htaccess ×2
php ×2
seo ×2
.net ×1
asp.net-mvc ×1
caching ×1
django ×1
http-delete ×1
httpresponse ×1
ios ×1
outputcache ×1
python ×1
rest ×1
server ×1
youtube-api ×1