To understand HTTP communication, we need some familiarity with cryptography.
It is technique of converting human readable text into cipher text. It's components are message, method, and output. Depending upon the number of keys used in the method, we have two types of cryptography:
Symmetric key cryptography: using one key for both encryption and decryption
Asymmetric key cryptography: using one key for encryption and another one for decryption