Let's see, I'm typing this on my Mac in a Safari browser. We're acting as a client connecting to a web server running the Arduino forums. There's web sockets under the covers but you need not care about that. The language that describes the page I'm viewing is HTML and if I do view source, my browser will show it to me, probably with a boatload of Javascript and CSS - you do not care about these either today. When I hit reply, what I typed will be POSTed back to the Arduino web server and saved to show to you later.
It's not all so clear cut though 
A few feet away from me there is a PC running Linux. I could have done all this from there too, acting as a client. It's also a server though - it's running a database and a web server. I have a Pi in my dining room reading the temperature periodically. Acting as a client of the web server, it uses GET requests to send temperature data to a basic CGI web page that grabs the information and stores it in MySQL.
There are a few web pages there that let me use a browser (client) to view current conditions and history. I also want to know what the temperature is outside. I could pull an @Idahowalker and build a weather station or I could be lazy. What a dilemma.
So anyway, My Linux box (acting as a client) hits a web service providing JSON weather data, which I parse and save in my database so the web server can serve it up to any client machine in my house. I also scrape a NOAA page for the current conditions at my nearest airport and store those. That's mildly interesting because the NOAA data is actuals whereas the weather service data is forecast data from their models, even for conditions right now.
I think I also pull data (or try to) from the local RAF airfield nearest to my Dad's house.
No Javascript or CSS. Styling is basic tables and google charts.
None of this is especially hard, but there are lots of pieces. As ever with this stuff, find the smallest thing you can do and play with it. Build a pointless Hello world web page in HTML. You can find a gazillion tutorials and you can do it on your PC and just open the file from a browser. Then serve it up from your ESP. Then make the ESP show something (millis?) in the web page etc. etc.
You don't need to learn all this stuff up front, even though having some knowledge will help you debug it, but some of the stuff you're proposing to master is like taking a class in engine rebuilding, when all you want to do is drive to the supermarket to buy some potatoes.