- Testing
- Have multiple endpoints
- Add endpoints that dont map to a file (routes concept)
- Mime types
- including the right Content-Type header in response
- router is aware of Accept header in case route wants to return different mime types
- Query string parsing (posts?name=test and filter results)
- POST body parsing
- router is aware of Content-Type header in POST/PUT request
- Other content types to support
- application/x-www-form-urlencoded
- multipart/form-data
- Every REST action type (GET, POST, PUT, DELETE, PATCH)
- Requests with the same path but different method
- Access control (basic auth, api key, etc)
- Multi-threading (taking multiple requests at a time)
- Data compression (gzipping)
- Browser caching (response code 304)
- Redirects
- Virtual hosting (deploying)