Module 3: Webservices Flashcards
Wat is een servlet?
Een servlet is een Java-klasse die reageert op een bepaald type netwerkverzoek (zoals een HTTP verzoek).
Servlets worden uitgevoerd in een servletcontainer die de netwerkkant afhandelt (zoals Tomcat).
Van hoeveel instanties draait een Servlet?
Altijd maar 1 instantie.
Wat maakt een Servlet schaalbaar?
Elk request wordt (parallel) afgehandeld in een aparte thread.
Waar wordt een filter in een web container voor gebruikt?
Een filter wordt gebruikt om requests en responses te filteren, oa. voor autorisatie of performance logging.
Welke onderdelen bestaan er in een Web Container?
- Servlet
- Filter
- Listener
Waar wordt een listener in een web container voor gebruikt?
Een listener wordt getriggerd als die benodigd is, oa. voor het starten van een sessie elke keer als er verbinding wordt gemaakt.
Wat is REST?
REST (REpresentational State Transfer) is een architectuurstijl die gebruikt maakt van HTTP (HyperText Transfer Protocol).
Is HTTP stateless?
HTTP is stateless, al is het wel mogelijk om de staat bij te houden (via sessies bijvoorbeeld).
Waar staat URL voor?
Uniform Resource Locator
Wat zijn de HTTP Methodes?
- GET
- HEAD
- POST
- PUT
- DELETE
- TRACE
- OPTIONS
- PATCH
Wat is een HTTP header?
Een header is meta-informatie over de request/response. Headers zijn key-value pairs van informatie.
Welke header property is al enige verplicht (sinds HTTP 1.1) en welke waarde moet die hebben?
Host.
Deze moet als waarde hebben de host waar het verzoek naar toe moet gaan, bijvoorbeeld academy.quintor.nl.
Wat zijn Cookies?
Een cookie is een hoeveelheid data die een server naar de webbrowser stuurt met de bedoeling dat deze opgeslagen wordt en bij een volgend bezoek weer naar de server teruggestuurd wordt.
Hoe schrijf je een key&value in de URL als parameter?
www.example.com?key=value
Wat zijn de groepen status codes?
- Informational responses (100–199)
- Successful responses (200–299)
- Redirects (300–399)
- Client errors (400–499)
- Server errors (500–599)
Wat is REST?
REST, of REpresentational State Transfer, is een architectuurstijl voor het leveren van standaarden tussen computersystemen op het web, waardoor systemen gemakkelijker met elkaar kunnen communiceren.
Wat zijn de constraints/beperkingen van REST?
Er zijn zes architectonische beperkingen:
- Uniform Interface
- Stateless
- Cacheable
- Client-Server
- Layered System
- Code on Demand
Hoe pas je caching toe aan een RESTful interface?
Door middel van een E-tag header.
Dit is een hash van de identiteit die je hebt gekregen. Aan de hand hiervan wordt gekeken of er iets gewijzigd is. Zo wel, dan wordt de gewijzigde resource gestuurd. Zo niet, dan wordt er not modified gestuurd. Dit resulteert vooral in minder bandbreedte.
Is REST stateless?
Ja
Wat zijn de vier basis HTTP verbs die gebruikt worden bij REST?
GET — een specifieke bron ophalen (op id) of een verzameling bronnen
POST — maak een nieuwe bron
PUT — update een specifieke bron (op id)
VERWIJDEREN — verwijder een specifieke bron op id
Wat is het Richardson REST Maturity Model?
Het Richardson Maturity Model is een manier om een API te beoordelen volgens de beperkingen van REST. Hoe beter uw API aan deze beperkingen voldoet, hoe hoger de score.
Om echt volledig RESTful bezig te zijn, moet er voldaan worden aan de alle niveaus in het model.
Benoem de niveau’s binnen het Richardson REST Maturity Model
Level 0: gebruik van 1 URI, 1 HTTP-methode
Level 1: 1 URI per resource, 1 HTTP-methode
Level 2: gebruik van meerdere URI’s, meerdere HTTP-methodes, correct gebruik van response codes
Level 3: gebruik van hypermedia, zelfbeschrijvendheid (HATEOAS) van de API. Er wordt extra informatie toegevoegd waarmee processen en relaties kunnen weergegeven worden. Zo kan je doorheen de links van de API klikken.
Wat staat HATEOAS voor en wat is het?
Hypermedia As The Engine of Application State
…
Waar staat DTO voor en waarom gebruiken we het?
Data Transfer Object
DTO’s worden meestal gebruikt om gegevens over het netwerk over te dragen. Het belangrijkste voordeel is dat het de hoeveelheid gegevens vermindert die over de draad moet worden verzonden in gedistribueerde toepassingen.