This article provides a comprehensive list of HTTP request methods, their definitions, and use cases.
You may have heard about the different HTTP request methods, but what are they, and how do they differ? In this article you will find a list of all HTTP request methods, their definitions, and their use cases.
An HTTP request method (or verb) is a part of the HTTP protocol that indicates the desired action to be performed on a specific resource identified by a URL. Each method has a specific meaning and is used for different purposes in web communication. HTTP request methods are used in RESTful APIs to define the type of operation to be performed on the resources. They are part of the HTTP protocol, which is the foundation of data communication on the World Wide Web.
To learn more about HTTP methods and REST APIs, you can read our API guide part 2: REST(ful) APIs.
Here is a nearly exhaustive list of HTTP request methods, their definitions, and their use cases. Note that some methods are less commonly used or specific to certain protocols or applications.
The most commonly used HTTP request methods are: GET, POST, PUT, DELETE, PATCH, OPTIONS, and HEAD. These methods are widely supported and used in RESTful APIs.
ACL
BASELINE-CONTROL
BIND
CHECKIN
CHECKOUT
CONNECT
COPY
DELETE
GET
HEAD
LABEL
LINK
LOCK
M-SEARCH
MERGE
MKACTIVITY
MKCALENDAR
MKCOL
MKREDIRECTREF
MKWORKSPACE
MOVE
NOTIFY
OPTIONS
ORDERPATCH
PATCH
POST
PROPFIND
PROPPATCH
PURGE
PUT
QUERY
REBIND
REPORT
SEARCH
SOURCE
SUBSCRIBE
TRACE
UNBIND
UNCHECKOUT
UNLINK
UNLOCK
UNSUBSCRIBE
UPDATE
UPDATEREDIRECTREF
VERSION-CONTROL
The ACL (Access Control List) method is used to retrieve or modify the access control list of a resource. It allows clients to manage permissions for users or groups on a specific resource.
The BASELINE-CONTROL method is used to manage baselines in a version-controlled resource. It allows clients to create, modify, or delete baselines, which are snapshots of a resource at a specific point in time.
The BIND method is used to bind a resource to a new URI. It allows clients to create a new binding for a resource, making it accessible under a different URI.
The CHECKIN method is used to submit changes to a version-controlled resource. It allows clients to create a new version of a resource by checking in the modified content.
The CHECKOUT method is used to allow modifications to a version-controlled resource.
The CONNECT method is used to establish a tunnel to the server identified by a given URI. It is primarily used for proxy servers to create a connection to a remote server, often for HTTPS communication.
The COPY method is used to create a copy of a resource at a different URI.
The DELETE method is used to remove a resource identified by a given URI. Example: DELETE /api/v1/users/123
would delete the user with ID 123.
The GET method is used to retrieve a representation of a resource identified by a given URI. It is the most common method used in RESTful APIs. Example: GET /api/v1/users/123
would retrieve the user with ID 123.
The HEAD method is similar to the GET method, but it only retrieves the headers of a resource without the body. It is often used to check if a resource exists or to get metadata about a resource. Example: HEAD /api/v1/users/123
would return the headers for the user with ID 123 without the user data.
The LABEL method is used to assign a label to a version-controlled resource. It allows clients to categorize or tag resources with specific labels for easier identification and management.
The LINK method is used to create a link between two resources. It allows clients to establish relationships between resources by creating a link from one resource to another.
The LOCK method is used to lock a resource to prevent other clients from modifying it. It allows clients to obtain a lock on a resource, ensuring that no other client can make changes until the lock is released.
Specific to SSDP (Simple Service Discovery Protocol)
The M-SEARCH method is used in the context of SSDP to discover devices and services on a network. It allows clients to send a multicast request to find available resources.
The MERGE method is used to merge changes from one resource into another. It allows clients to combine the state of two resources, typically in a version-controlled environment.
The MKACTIVITY method is used to create a new activity resource in a version-controlled environment. It allows clients to initiate a new set of changes to a resource.
The MKCALENDAR method is used to create a new calendar resource. It allows clients to create a calendar collection for managing events and schedules.
The MKCOL method is used to create a new collection (directory) at a specified URI. It allows clients to create a new folder or directory in a WebDAV server.
The MKREDIRECTREF method is used to create a redirect reference to a resource. It allows clients to create a reference that points to another resource, enabling redirection.
The MKWORKSPACE method is used to create a new workspace resource. It allows clients to create a workspace for organizing related resources in a WebDAV server.
The MOVE method is used to move a resource from one URI to another. It allows clients to change the location of a resource by moving it to a new URI.
Specific to WebDAV
The NOTIFY method is used to send notifications about changes to a resource. It allows clients to receive updates or alerts when a resource is modified or updated.
The OPTIONS method is used to retrieve the supported HTTP methods and other options for a specific resource. It allows clients to discover the capabilities of a server or resource. Example: OPTIONS /api/v1/users/123
would return the allowed methods for the user with ID 123.
The ORDERPATCH method is used to modify the order of resources in a collection. It allows clients to change the sequence or arrangement of resources within a collection.
The PATCH method is used to apply partial modifications to a resource. It allows clients to update specific fields or properties of a resource without sending the entire representation. Example: PATCH /api/v1/users/123
with a body containing the fields to update.
The POST method is used to submit data to a server to create a new resource or perform an action. It is often used to send data in the request body, such as creating a new user or submitting a form. Example: POST /api/v1/users
with a body containing the user data.
The PROPFIND method is used to retrieve properties of a resource. It allows clients to request metadata or attributes associated with a resource, such as its creation date, last modified date, or custom properties.
The PROPPATCH method is used to modify properties of a resource. It allows clients to update or set specific properties associated with a resource, such as changing its title or description.
The PURGE method is used to remove cached content from a cache server. It is often used in content delivery networks (CDNs) to invalidate cached resources and ensure that clients receive the most up-to-date content.
The PUT method is used to create or update a resource at a specified URI. It allows clients to send the entire representation of a resource in the request body. If the resource already exists, it will be replaced; if it does not exist, it will be created. Example: PUT /api/v1/users/123
with a body containing the user data.
New proposal, not yet standardized
The QUERY method is used to retrieve data from a resource based on specific criteria or parameters. It is similar to the GET method but will allow for a request body to be included, enabling more complex queries. This method is not yet widely supported or standardized.
The REBIND method is used to change the binding of a resource to a new URI. It allows clients to update the URI associated with a resource without changing its content.
The REPORT method is used to request a report or summary of information about a resource. It allows clients to retrieve specific data or statistics related to a resource, such as version history or access control information.
The SEARCH method is used to perform a search operation on a resource or collection. It allows clients to query resources based on specific criteria, such as keywords or properties.
The SOURCE method is used to retrieve the source code or content of a resource. It allows clients to access the underlying data or representation of a resource, typically in a format suitable for further processing or analysis.
Specific to WebDAV
The SUBSCRIBE method is used to subscribe to notifications or events related to a resource. It allows clients to receive updates or alerts when changes occur to a resource, such as modifications or new versions.
The TRACE method is used to perform a diagnostic trace of the request path. It allows clients to see the exact request and response headers as they are sent and received by the server. It is primarily used for debugging purposes.
The UNBIND method is used to remove a binding of a resource from a specific URI. It allows clients to delete the association between a resource and its URI without affecting the resource itself.
The UNCHECKOUT method is used to cancel a checkout operation on a version-controlled resource. It allows clients to discard changes made during a checkout and revert the resource to its previous state.
The UNLINK method is used to remove a link between two resources. It allows clients to delete a previously established link without affecting the resources themselves.
The UNLOCK method is used to release a lock on a resource. It allows clients to remove a lock previously obtained with the LOCK method, enabling other clients to modify the resource.
Specific to WebDAV
The UNSUBSCRIBE method is used to cancel a subscription to notifications or events related to a resource. It allows clients to stop receiving updates or alerts when changes occur to a resource.
The UPDATE method is used to modify a version-controlled resource. It allows clients to apply changes to a resource without creating a new version, typically used in conjunction with version control systems.
The UPDATEREDIRECTREF method is used to update a redirect reference to a resource. It allows clients to change the target URI of a redirect reference, enabling redirection to a different resource.
The VERSION-CONTROL method is used to create a new version-controlled resource. It allows clients to initiate version control for a resource, enabling tracking of changes and versions over time.
While the methods listed above are standardized and widely used, it is possible to define custom HTTP request methods for specific applications or protocols. However, custom methods should be used with caution, as they may not be supported by all clients or servers and can lead to compatibility issues.