Super Plugin Sale! Your Choice: BOGO or 30% Off »
Web Dev + WordPress + Security

Testing HTTP Requests

Just a quick post with some tips for troubleshooting and testing HTTP requests. For example, if you have a plugin that sends requests behind the scenes via Ajax or cURL or whatever, it’s nice to have a way to view request details such as headers, the response, and everything in between. This article is aimed primarily at WordPress users, but contains more general tips and tricks as well.

Use Core Control to track requests

Perhaps the best way to look at HTTP requests happening on WordPress sites is to install Core Control and activate the “HTTP Logging Module”. Then repeat whatever HTTP requests need made and revisit the plugin’s logging screen, which breaks everything down: URL, method, result, time, user agent, headers, cookies, and much more (see screenshots). Core Control is one of my favorite plugins to play with :)

[ WP Plugin: Core Control ]
Core Control plugin with its HTTP Logger Module activated
[ WP Plugin: Core Control - HTTP Module ]
Core Control’s HTTP Logger shows results

To iilustrate the usefulness of the HTTP logging module, here are the logged details of a phone-home to

Method	POST
Result	200 OK
Time Taken	0.30910992622375 seconds
HTTP Args	
timeout	(integer) 3
redirection	(integer) 5
httpversion	(string) 1.0
user-agent	(string) WordPress/3.8.1;
reject_unsafe_urls	(boolean) false
blocking	(boolean) true
    [wp_install] =>
    [wp_blog] =>
compress	(boolean) false
decompress	(boolean) true
sslverify	(boolean) true
sslcertificates	(string) /var/www/
stream	(boolean) false
filename	NULL
limit_response_size	NULL
    [translations] => []
HTTP Transports	WP_HTTP_curl
Request Time	2014-02-07 00:23:40 --800

Those data are available for each logged HTTP request. As an older WP plugin, Core Control’s settings/logging screens appear a bit confusing (the WP Admin Area has changed significantly in the past two years), but all the data is available by first clicking on any logged request to toggle open more data. From there, you have three sub-screens available: “Request Details”, “Response Headers”, and “Response Body”, each with its own plethora of juicy HTTP infos.

Core Control includes numerous other modules as well so feel free to experiment and learn stuff. Also, this is one of those awesome plugins that hasn’t been updated in over two years, so visiting its page in the Plugin Directory you’ll see that yellow warning banner. But don’t let that scare you — the plugin works just as good today as it did over two years ago. It’s just a solid plugin that’s super-useful.

Perform a traceroute from the server

This method is a bit more advanced, requiring SSH connect to the server. Once connected, perform a traceroute to the target URL(s) using the following command:


The resulting traceroute will then reveal at exactly which point the HTTP request is failing (or not). The key here is that you’re making the request from the server, not your local machine. If needed, ask your web host for help with connecting via SSH. Or for more explanation, check out this post at WP-Mix.

Examine your server logs

If all else fails, examine your server’s access and error logs. They provide a wealth of data regarding many details of each request and/or error. As I explain in .htaccess made easy, HTTP investigations frequently begin and end with the server access and error logs.

Ask your host

Some hosts are better than others with providing help. So another thing that could be useful or provide some clues is to ask your host to look into whatever HTTP issue you’re dealing with, and/or if they have resources available that would be useful.

About the Author
Jeff Starr = Web Developer. Book Author. Secretly Important.
.htaccess made easy: Improve site performance and security.

One response to “Testing HTTP Requests”

  1. Thanks for sharing such useful information. Really good stuff, and I’m looking forward to reading the htaccess book. However, this moment I’m on a quest to get an answer to this question: “Can one, the using htaccess file, permanently redirect (301) a specific domain name and allow requests for other domain names to continue?” If you know of a way, thank you in advance for any tips, clues, helpful URLs etc.

Comments are closed for this post. Something to add? Let me know.
Perishable Press is operated by Jeff Starr, a professional web developer and book author with two decades of experience. Here you will find posts about web development, WordPress, security, and more »
Blackhole Pro: Trap bad bots in a virtual black hole.
All free plugins updated and ready for WordPress 6.6 dropping next week. Pro plugin updates in the works :)
99% of video thumbnail/previews are pure cringe. Goofy faces = Clickbait.
Crazy that we’re almost halfway thru 2024.
I live right next door to the absolute loudest car in town. And the owner loves to drive it.
8G Firewall now out of beta testing, ready for use on production sites.
It's all about that ad revenue baby.
Get news, updates, deals & tips via email.
Email kept private. Easy unsubscribe anytime.