Duckduckgo-able terms are in bold.
The web stack is huge. Most people focus one one part of it. Designers tend to focus on graphics down to HTML and CSS. Front end developers tend to focus on HTML/CSS/JS. Back end developers tend to focus on HTML/HTTP/server side programming. DBAs focus on the databases.
And now… the stack (presented from the middle out).
Websites are based around documents. These are usually written in HTML which is a markup language that describes the semantics, structure and relationships of the text.
They live on a webserver and are transmitted over HTTP (sometimes with encryption via SSL, the combination of the technologies being HTTPS)
When a browser receives a markup document, it converts it into a DOM and renders it.
CSS is a presentation language that describes how a markup document should be presented on various media types (and with media queries on the same media with different properties (such as windows under a certain width having different presentation to windows over a certain width).
JavaScript is a programming language. It can be used in many places (including on servers via ASP, node.js and various other means) but is the only language supported by browsers without the use of plugins. JavaScript can be embedded in HTML to respond to events (such as clicks) and manipulate the DOM on the fly (the DOM specification is mostly an API that describes how to manipulate it). You can issue HTTP requests from JavaScript (usually using XMLHttpRequest or JSON-P) to get new data for a document on the fly. This data is often encoded using JSON but can be any format you like.
Webservers can serve up documents from flat files, but often generate them on the fly (in response to HTTP requests) by running software.
Such software can be written in any language you choose as there are a number of standard interfaces such as CGI and FastCGI. Some languages give you specific interfaces which may provide advantages over the generic ones, e.g. Perl has mod_perl which gives you a vast amount of access to the internals of the webserver (extreme example: I've seen someone turn Apache HTTPD into a spam filtering SMTP mail server using mod_perl).
Ruby is a programming language. Ruby on Rails is an MVC Framework for Ruby. These exist for most languages, Perl has Dancer, Catalyst and MojoMojo, Python has Django, Java has Spring, and so on).
Many programmes use a database for storage and searching. SQL databases are most common (including Postgresql, MySQL, MS SQL and SQLite), but other options are around. JSON based document stores (such as CouchDB) are quite popular.
Since HTTP is stateless, cookies are used to store data between requests. These are stored by the browser and included in each request back to the site that set them.