Already know some Frameworks? Answer these 11 questions, about 6 minutes. Each topic you get fully right is marked Known on the Frameworks roadmap , so you can skip it. Each one you miss is listed for you to study.
Don’t guess. Pick “I don’t know yet” when you’re not sure: a lucky guess would mark a topic Known that you still need to learn.
The 7 topics it checks HTTP methods and status codes WSGI vs ASGI The request lifecycle REST design Sessions, JWT and OAuth2 CORS and CSRF Top OWASP risks: injection, XSS, broken authentication Question 1 of 11 · Multiple choice A client sends POST /notes and the note is saved. What should the API answer? 200 OK, with the note 204 No Content 201 Created, with a Location header pointing at the new note 302 Found, to the list I don’t know yet
Question 2 of 11 · Multiple choice A request times out and the client can’t tell if it arrived. Which method is safe to just send again? PUT /notes/7 with the full note POST /orders POST /payments PATCH /counter with {"add": 1} I don’t know yet
Question 3 of 11 · Multiple choice A Flask app on 4 sync workers holds 200 open chat connections that wait for new messages. What happens? All 200 are served at once The connections are closed after one second Flask turns them into async tasks Each worker holds one waiting connection, so only 4 are served and the rest queue I don’t know yet
Question 4 of 11 · Predict the output Two middlewares wrap a view: A outside, B inside. Each prints on the way in and on the way out. What is printed? # A: print("A in"); response = next(request); print("A out")
# B: print("B in"); response = next(request); print("B out")
# view: print("view")
A in, B in, view, A out, B out A in, B in, view, B out, A out B in, A in, view, A out, B out view, A in, B in, B out, A out I don’t know yet
Question 5 of 11 · Multiple choice Notes are added while a user scrolls with ?offset=20&limit=20. Some notes show up twice. What fixes it? A bigger limit Sorting by title A cursor: ask for notes after the last id seen Caching the first page I don’t know yet
Question 6 of 11 · Multiple choice Users are logged out at random behind a load balancer with two servers. What is the likely cause? Sessions are kept in each server’s memory The cookie is HttpOnly The JWT is signed with HS256 The password hash is too slow I don’t know yet
Question 7 of 11 · Multiple choice What is true of a JWT? It is encrypted, so the client can’t read it It can be cancelled at once from the server The server must look it up in a database on each request It is signed, so the client can read it but not change it I don’t know yet
Question 8 of 11 · Multiple choice Your API sets Access-Control-Allow-Origin: * and logged-in calls from your front end now fail. Why? The API needs HTTPS Browsers refuse * when cookies are sent; name the origin and allow credentials * only works for POST The front end must send Origin: * I don’t know yet
Question 9 of 11 · Multiple choice Does a strict CORS allow list stop another site’s hidden form from posting to your cookie-based API? Yes, the browser blocks the post Yes, but only for JSON No: CORS only stops reading the answer. Use SameSite cookies and CSRF tokens No, nothing can stop it I don’t know yet
Question 10 of 11 · Spot the bug What is the problem here? rows = db.execute(f"SELECT * FROM notes WHERE owner = {user_id} AND title = '{title}'")
The title is pasted into the SQL, so a quote in it can change the query It should use SELECT title user_id should be a string Nothing I don’t know yet
Question 11 of 11 · Multiple choice Ben changes /notes/41 to /notes/42 and can edit Ana’s note. What was missing? HTTPS A slower password hash A CSRF token A check that the note belongs to Ben I don’t know yet
See my results Answered 0 of 11.