Spring Sale! Save 30% on all books w/ code: PLANET24
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 WordPress.org:

URL	https://api.wordpress.org/core/version-check/1.7/?version=3.8.1&php=5.3.5&locale=en_US&mysql=5.1.54&local_package=&blogs=1&users=1&multisite_enabled=0
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; http://example.com/
reject_unsafe_urls	(boolean) false
blocking	(boolean) true
headers	
Array
(
    [wp_install] => http://example.com/
    [wp_blog] => http://example.com/
)
cookies	
Array
(
)
compress	(boolean) false
decompress	(boolean) true
sslverify	(boolean) true
sslcertificates	(string) /var/www/example.com/wordpress/wp-includes/certificates/ca-bundle.crt
stream	(boolean) false
filename	NULL
limit_response_size	NULL
HTTP POST body	
Array
(
    [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:

traceroute example.com

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 = Creative thinker. Passionate about free and open Web.
USP Pro: Unlimited front-end forms for user-submitted posts and more.

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.
Welcome
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 »
Digging Into WordPress: Take your WordPress skills to the next level.
Thoughts
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.
Note to self: encrypting 500 GB of data on my iMac takes around 8 hours.
Getting back into things after a bit of a break. Currently 7° F outside. Chillz.
2024 is going to make 2020 look like a vacation. Prepare accordingly.
First snow of the year :)
Newsletter
Get news, updates, deals & tips via email.
Email kept private. Easy unsubscribe anytime.