From 297af21b07a4aa8f25527d469f460a22e6199bab Mon Sep 17 00:00:00 2001 From: Donne Martin Date: Wed, 1 Mar 2017 20:44:00 -0800 Subject: [PATCH] Add Hypertext transfer protocol (HTTP) section --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index 7a959625..2e015122 100644 --- a/README.md +++ b/README.md @@ -1451,3 +1451,24 @@ If queues start to grow significantly, the queue size can become larger than mem
Source: OSI 7 layer model

+ +### Hypertext transfer protocol (HTTP) + +HTTP is a method for encoding and transporting data between a client and a server. It is a request/response protocol: clients issue requests and servers issue responses with relevant content and completion status info about the request. HTTP is self-contained, allowing requests and responses to flow through many intermediate routers and servers that perform load balancing, caching, encryption, and compression. + +A basic HTTP request consists of a verb (method) and a resource (endpoint). Below are common HTTP verbs: + +| Verb | Description | Idempotent* | Safe | Cacheable | +|---|---|---|---|---| +| GET | Reads a resource | Yes | Yes | Yes | +| POST | Creates a resource or trigger a process that handles data | No | No | Yes if response contains freshness info | +| PUT | Creates or replace a resource | Yes | No | No | +| PATCH | Partially updates a resource | No | No | Yes if response contains freshness info | +| DELETE | Deletes a resource | Yes | No | No | + +*Can be called many times without different outcomes. + +HTTP is an application layer protocol relying on lower-level protocols such as **TCP** and **UDP**. + +* [HTTP](https://www.nginx.com/resources/glossary/http/) +* [README](https://www.quora.com/What-is-the-difference-between-HTTP-protocol-and-TCP-protocol)