# Project Server Notes ## Checkpoint 1 1. Lots of software today connects to remote servers, and can't work offline. What are some advantages of using a program or an app which uses a remote server? What are some advantages of using a program or an app which is completely local? I think remote servers can be beneficial for a larger-scale use especially in terms of data storage. Using remote servers can relieve the user from having to contain all information and background work on their devices. In comparison, I would think that benefits of using a local program would be privacy. The risks of connections being intercepted or the information recovery issues would be decreased. I'm think more so along the lines of Cloud, I am not sure if that's exactly the same. 2. You just ran a server on your own computer, and connected to it as a client on the same computer. In what other situations might it be useful to run a server on your computer, where you're the only client, on the same computer? I think such practice would be totally beneficial in the early stages of the server development. Debugging can be done quickly by testing the program as a client and fixing the errrors as they come up back and forth. ## Checkpoint 2 3. Choose a program (Steam), web app (Google Docs), or app (Weather) that you use frequently. You can't observe the calls this program is making to its server (unless you have fancy tools), but you can infer some of the calls based on the program's behavior. Describe a few routes which you think may exist for your chosen program's backend server. The program I chose is Steam. Some of the program's behavior that reminds me of post/get processes is downloading a game (GET the game data), compelting in-game transactions (POST the payment process to ensure payment goes through), and auto-save features on the games (which I think would be POSTing to running file information to the downloaded game file as it's running). These routes can be /download, /checkout, and /save 4. In your own words, what is an exception? When might it be useful to handle an exception? When is it better not to handle an exception, and instead let the program crash? I think exception is a prediction of user behavior that would not align with the code. Since exceptions target specific errors, such as the "id" not being entered, it specifies common errors that migiht occur and lets the users know what went wrong. If the exception or an error is potentially threatening the functionality and originality of the overall code, then it might be best for a program to crash to protect itself.