BSP Trouble Shooting: HTTP Browser Traces
Once I read that life would be so much easier, if only we could see the source code. I cannot confirm this, but for development it is definitely true! However, for Web development, even more important than the actual source code (HTML) is the dynamic behavior of the coding. We start nearly all problem solutions with this aspect. Standard question number one in problem solving: “Do we have an HTTP trace?” Of course, the simplest way to make such a trace is on the server. Use transaction SMICM, menu Go To –> Trace Level. However, the ICM trace is not very easy to use. All HTTP traffic from all users is traced and the ICM trace contains many other “internal” related aspects. Both of these aspects make the trace file very frustrating to read. The approach that we use in development is to install an HTTP proxy tool directly on our local computers. With such a tool, we can easily trace all HTTP traffic between the browser and the server. h4. What is an HTTP Proxy? The first question is how does an HTTP proxy work? To tell you the truth, I don’t know the gory details. So let me give you my high-level understanding, which has been enough for me :). First, let’s look at how HTTP works. The HTTP protocol is a request/response protocol. Only the browser can send requests, and the server can only answer with a matching response. Often, we use the expression “HTTP request/response cycle”. It’s important that the browser can have many HTTP requests outstanding, waiting on responses from the server. Each HTTP response will always be mapped correctly to the HTTP request that started this cycle. However, often the server is located outside a firewall and it’s not possible to communicate directly with the server. For this, companies place HTTP proxies at the firewall, with one foot inside the firewall and the other foot outside. The browser is configured to use the proxy for handling HTTP requests. This means, that instead of the browser contacting a server for each request, it contacts the proxy with the HTTP request, and waits for the proxy to return the HTTP response. So we can see that the browser knows the concept of some agent that can be configured to handle all HTTP requests for it. The browser contacts the proxy and considers the work complete. The trick is just to configure the browser to use another proxy, namely our HTTP trace proxy.