A background in web requests is valuable before delving into interfaces that run over the top of Hyper-Text Transfer Protocol (HTTP).
PowerShell can use Invoke-WebRequest
to send HTTP requests. For example, the following command will return the response to a GET
request for the Hey, Scripting Guy blog:
Invoke-WebRequest -UseBasicParsing https://blogs.technet.microsoft.com/heyscriptingguy/
HTTP supports a number of different methods, including:
GET
HEAD
POST
PUT
DELETE
CONNECT
OPTIONS
TRACE
PATCH
These methods are defined in the HTTP 1.1 specification:
https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
It is common to find that a web server only supports a subset of these. In many cases, supporting too many methods is deemed to be a security risk. The Invoke-WebRequest
command can be used to verify the list of HTTP methods supported by a site, for example:
PS> Invoke-WebRequest www.indented.co.uk -Method OPTIONS |
Select-Object -ExpandProperty Headers
Key ...