The previous sections pretend that there is only one kind of request in HTTP — the ‘GET’ request. In fact, there are some others.
The ‘HEAD’ request method retrieves data about an resource. Polipo does not normally use ‘HEAD’, but will fall back to using it for validation it if finds that a given server fails to cooperate with its standard validation methods (see Cache transparency). Polipo will correctly reply to a client’s ‘HEAD’ request.
The ‘POST’ method is used to request that the server should do something rather than merely sending an entity; it is usually used with HTML forms that have an effect3. The ‘PUT’ method is used to replace an resource with a different instance; it is typically used by web publishing applications.
‘POST’ and ‘PUT’ requests are handled by Polipo pretty much like ‘GET’ and ‘HEAD’; however, for various reasons, some precautions must be taken. In particular, any cached data for the resource they refer to must be discarded, and they can never be pipelined.
Finally, HTTP/1.1 includes a convenient backdoor with the ‘CONNECT’ method. For more information, please see Tunnelling connections.
Polipo does not currently handle the more exotic methods such as ‘OPTIONS’ and ‘PROPFIND’.
HTML forms should use the ‘GET’ method when the form has no side-effect as this makes the results cacheable.