I actually haven’t done any web development in Rust, but Rocket looks awesome to me based on my experience with other frameworks. It sounds like you need a higher level overview, though.
There are a few major pieces you need to be a successful developer:
- Frontend development. This is the part that renders the visual elements in the web browser. In modern systems, a ton of the business logic happens in the frontend, but ten years ago, most of it was done in the backend, and the frontend was just a sort of dumb terminal.
- Backend development. This is traditionally the part that interacts with the database. In older systems, the backend would do most of the rendering and send it to the browser to be displayed. Nowadays it is more common for the backend to only send and receive data, and the bulk of the rendering is done in the frontend.
- HTTP. This is the protocol that governs communication between the frontend and backend. You don’t have to understand the protocol itself, but you do need to learn how the web world thinks about requests and responses. The web browser makes a request for a specific URL, then a backend service (running rocket, for example) calculates some values and returns a response.
- The database. You need to store data somewhere! Traditionally, you need to know SQL to do database querying, but there are other types of databases out there, and there are libraries that you can use to interact with the traditional databases.
These are all huge topics, and nowadays it is unusual for one person to do all those roles (called full stack development). Usually people specialize in either backend development, or in frontend development.
If I was starting out today, I would focus entirely on frontend development skills. There are great services like Firebase or Parse that can do ALL your backend work for you, including the database part. If you choose to go this route, you need to learn at least the following:
- HTML to structure the content of your documents. If you don’t know it already, it’s very easy to get the basics.
- CSS to format the layouts of the documents. It’s also easy to get the basics, but takes a tremendous amount of talent to make things look amazing!
The other alternative would be to focus on backend development skills, which seems to be your inclination based on your questions. In that case, you would probably do all your rendering on the server side, and then send a full HTML page back to the browser to render. If you go that route you’d need to learn at least:
- HTML. HTML is the only thing the browser knows how to display, so you need it at one end of the stack or the other.
- CSS. Similarly.
- A database library. MySQL and PostgreSQL are traditional, though there are many others. Django and Rails have well documented support these built in, which is probably the reason we’re recommending them. Rocket doesn’t appear to have db access built in, so you need to find and use another library for it.
In a backend-oriented web service, your normal workflow is:
- User requests a web page
- Server figures out what code to call using the web page using some kind of routing mechanism.
- You write the code that the router decided to call based on the user request. This code generally looks for values that were submitted in forms and looks at the current state for the logged in user, and the page the requested.
- Your code returns some a response that is formatted as HTML.
- The server sends this response to the browser and the browser statically renders it.
In a frontend-oriented web application, it looks more like this:
- User events (mouse clicks and keystrokes, for example) happen, and the browser calls code you set up in response to those events.
- At some point, your code needs to interact with a remote service, for example, when the user clicks a “submit” button.
- Your code calls some client library to send data or a query to firebase/parse/a backend service you wrote
- The service responds with data in JSON format. Notice that the server is not responding with HTML in this frontend oriented world.
- Some code that you set up to be called when the response comes in extracts that json and makes changes to the UI in response to it. For example, loading the data into a table the user can see.
I hope that provides an overview and some web search terms to get you going. You’ve asked about what has become a truly huge topic in the last few years. There’s no way to learn it all at once, and there is no obvious “learn this first, then that” to break it down into. So it’s understandable that you’re having a bit of difficulty figuring out where to start!