11.6. Debugging the Raw HTTP Exchange
Problem
You want to analyze the HTTP request a browser makes to your server and the corresponding HTTP response. For example, your server doesn’t supply the expected response to a particular request so you want to see exactly what the components of the request are.
Solution
For simple requests, connect to the web server with telnet and type in the request headers:
%telnet www.example.com 80
Trying 10.1.1.1... Connected to www.example.com. Escape character is '^]'.GET / HTTP/1.0
Host: www.example.com HTTP/1.1 200 OK Date: Sat, 17 Aug 2002 06:10:19 GMT Server: Apache/1.3.26 (Unix) PHP/4.2.2 mod_ssl/2.8.9 OpenSSL/0.9.6d X-Powered-By: PHP/4.2.2 Connection: close Content-Type: text/html // ... the page body ...
Discussion
When you type in request headers, the web server
doesn’t know that it’s just you
typing and not a web browser submitting a request. However, some web
servers have
timeouts on how long
they’ll wait for a request, so it can be useful to
pretype the request and then just paste it into
telnet. The first line of the request contains
the request method (GET
),
a space and the path of the file you want (/
), and
then a space and the protocol you’re using
(HTTP/1.0
). The next line, the
Host
header, tells the server which virtual host to use if many are sharing the same IP address. A blank line tells the server that the request is over; it then spits back its response: first headers, then a blank line, and then the body of the response. ...
Get PHP Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.