Many folks get confused between these two terms which are associated with the Web. Are they really same? First thing first. HTML is a Language while HTTP is a Protocol. Doesn’t make much sense..? it’s okay! We’ll discuss it in more detail.
HTML (Hypertext Markup Language) is a language for marking the normal text so that it gets converted into hypertext. Again, not so clear. Basically, HTML tags (e.g. “<head>”, “<body>” etc.) are used to tag or mark normal text so that it becomes hypertext and several hypertext pages can be interlinked with each other resulting in the Web. Please note that the HTML tags are used to help render web pages as well in the Browser. On the contrary, HTTP (Hypertext Transfer Protocol) is a protocol for transferring the hypertext pages from Web Server to Web Browser. For exchanging web pages between Server and Browser, an HTTP session is setup using protocol methods (e.g. GET, POST etc.). This would be explained in another post.
To understand this difference between HTML and HTTP, we can think of an analogy. Think of HTML as C language and HTTP as FTP. Now one can write C programs in C language and then one can transfer these C programs from Server to Clients using FTP (i.e. File transfer protocol). Same way, web pages (which are mostly HTML pages) are written in HTML and these web pages are exchanged between Server and Clients using HTTP. Since HTML is a language and HTTP is a protocol, they are two different things though related. In fact, it’s possible to exchange HTML web pages without HTTP (e.g. using FTP to transfer HTML pages). Even, it’s possible to transfer non HTML pages using HTTP (e.g. using HTTP to transfer XML pages). More details on XML in some other post. We hope that the above clarifies the difference between HTML and HTTP.