Today, in the morning session with a mentee, she asked, "I have difficulty in remembering all the HTTP request methods and what it does. How can I make it simple?"
I had the same question in the end of 2009 when I started testing the applications built using the HTTP.
Learning, and Registering the Learning
When I read, I forget it, because it is not yet registered in me consciously. How to learn in a way so that it registers in me? I had this question. Especially, when I started my career, I had this challenge.
In the college days, I had formed a tricks and hacks to remember and the mnemonic was one of them. In 2008, I came across mnemonics in Software Testing. I saw the mnemonic used by practitioners in Software Testing as one of the learning techniques and to register and retrieve the learning.
I repeat my learning in multiple approaches until I understand a concept. Then I form a layer where I make it simple for me to register it, in me, and to retrieve.
I applied the same with the HTTP request methods. It became simple to me to recall and use it in my test designs when needed.
DOT 3P HCG
I helped myself by framing the mnemonic DOT 3P HCG in 2010. I had difficulty in recalling the HGC part. For this, I said to myself -- head, chest, and gut. That HCG became smooth in registering. Finally, I could recall all the HTTP request methods with this mnemonic.
DOT 3P HCG stands for:
- D: DELETE
- to delete the resource specified
- O: OPTIONS
- describes the communication options for the targeted source
- T: TRACE
- used for diagnostic purpose and does a loop-back test along the path to target resource
- P: POST
- to submit an entity to specified resource
- P: PUT
- to upload/update an entity that is saved on server at a specified endpoint
- P: PATCH
- to do a partial modification to a resource
- H: HEAD
- Ask for a response which is identical to GET but without a response body
- For example, fetching the expiry date in a header as a response so that it can be used in the next request's header or a payload
- C: CONNECT
- To establish a tunnel with a endpoint or server for communication
- G: GET
- To request a representation (an information copy) of specified resource