Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where is http protocol implementation in Linux

I try understand how http work's and can't understand on which level http protocol implemented, it's OS level, or it's depend from where I need use it protocol? For example if I want use it on C I must implement it on C language as library and only then use it?

like image 786
Lynx Rufus Avatar asked Dec 15 '22 02:12

Lynx Rufus


1 Answers

Http runs on top of tcp - and tcp is implemented in the network stack of your OS.

Http protocol is used between a client and a server. What a client sends is what a server receives, and vice-versa. Http was designed for the server to simply sit and wait for requests (possibly including data), and then respond (possibly including data).

All web servers implement the server side of http. In terms of applications (let's use the term "application" to mean "client", although some might say the server is an application), the client side of http protocol will, I suppose, most commonly be implemented in an application like a browser, but also command-line applications like curl and wget implement an http client. For languages such as Python there is a http server implementation in the standard library, or there are libraries such as requests which handle the client side of http so the python author just worries about the higher-level problem of which http requests to make.

So the answer is, http is not implemented in the OS, it is implemented in applications - some client-side, some server-side.

For your C application you will either have to implement http yourself (doesn't sound like fun to me but would be a good way of understanding http implementation, I suppose) or (much less stress and much more likely to have predictable correctish behaviour) use a library if you can find one.

like image 178
DisappointedByUnaccountableMod Avatar answered Dec 18 '22 12:12

DisappointedByUnaccountableMod