后总是向文章内连接发送GET请求

Posted gsls200808

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后总是向文章内连接发送GET请求相关的知识,希望对你有一定的参考价值。

通过观察wordpress请求发现,wordpress在更新文章后会向文章发送GET请求。

在发送请求之前会执行一个调用定时的一个请求

POST /wp-cron.php?doing_wp_cron=1678081385.6844499111175537109375 HTTP/1.1

执行这个定时后,这篇文章的所有链接都会发送HEAD和GET请求

HEAD /fj/radio?vodId=11 HTTP/1.1

UA为

WordPress/6.1.1; http://blog.example.com

最开始怀疑是过滤器make_clickable干扰导致

add_filter('commcent_text', 'make_clickable', 9);
add_filter('the_content', 'make_clickable');

全局搜索代码发现,这个过滤器识别链接是正则。后续也没有发送请求的操作。

那么从定时入手开始排查。

安装定时查看插件 WP Crontrol

安装后进入查看定时列表的页面

我这里有15分events

随便找一篇文章保存下,发现,保存后一两秒多了一个event

名为do_pings

do_pings,,2023-03-06T13:29:14+08:00,2023-03-06T05:29:14+00:00,do_all_pings(),Non-repeating,0

简单搜索了一下,这个是wordpress的Pingback、Trackback机制。简单理解就是,你的文章引用了别人的博客后会自动发送一个请求到对方博客。但是这个不太智能,对于文章里的url,不管你有没有设置超链接,不管链接的是不是博客,都会发这个请求到这个链接上。这个功能在wordpress安装后是默认启用的。上面的UA为WordPress的请求也是这么来的。那么如何关闭呢。

找到 设置--讨论 取消勾选 尝试通知文章中链接的博客 即可

关闭之后新文章就不会发请求了。老文章修改还会发送,需要执行SQL修改

UPDATE wp_posts SET ping_status = 'closed' WHERE post_date is not null

实测改SQL无效,怀疑改的是接收不是发送,安装WordPress ping Optimizer直接禁用ping功能即可

以上是关于后总是向文章内连接发送GET请求的主要内容,如果未能解决你的问题,请参考以下文章

简洁!get请求和post请求的区别——Web网络系列学习笔记

有没有一款软件是能够详细列出php的执行流程,比如说向哪个页面发送get,post请求了,请求的数据等

php中,post与get获取参数的异同

GET和POST请求的区别

如何从 PHP 发送 GET 请求?

PHP 结合前端 ajax 爬取网站信息后, 向指定用户发送指定短信;