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.
Leg uit wat de REST constraint ‘Uniform Interface’ inhoud
Uniform Interface suggereert dat er een uniforme manier van interactie moet zijn met een bepaalde server, ongeacht het apparaat of het type applicatie (website, mobiele app).
Leg uit wat de REST constraint ‘Stateless’ inhoud
Stateless betekent dat de noodzakelijke staat om het verzoek af te handelen zich in het verzoek zelf bevindt en dat de server niets met betrekking tot de sessie opslaat. In REST moet de client alle informatie voor de server opnemen om aan het verzoek te voldoen, hetzij als onderdeel van queryparameters, headers of URI.
Leg uit wat de REST constraint ‘Cacheable’ inhoud
Bij elk antwoord moet worden vermeld of het antwoord in de cache kan worden opgeslagen of niet en hoe lang de antwoorden aan de kant van de klant in de cache kunnen worden opgeslagen. Client zal de gegevens uit zijn cache retourneren voor elk volgend verzoek en het is niet nodig om het verzoek opnieuw naar de server te sturen.
Leg uit wat de REST constraint ‘Client-Server’ inhoud
Een REST-toepassing moet een client-server-architectuur hebben. Een Client is iemand die om bronnen vraagt en zich niet bezighoudt met gegevensopslag, die intern blijft voor elke server, en de server is iemand die de bronnen bezit en zich niet bezighoudt met de gebruikersinterface of gebruikersstatus.
Leg uit wat de REST constraint ‘Layered system’ inhoud
Een REST-applicatie moet uit meerdere lagen zijn opgebouwd. Elke laag weet niets over een andere laag dan die van de directe laag en er kunnen veel tussenliggende servers zijn tussen de client en de eindserver.
Leg uit wat de REST constraint ‘Code on Demand’ inhoud
Is een optionele functie die impliceert dat servers ook uitvoerbare code aan de client kunnen leveren.
Hoe maakt REST de applicatie flexibeler?
Door niet gebruik te maken van states. Essentiële gegevens worden in één verzoek behandeld, zodat de server geen staat-informatie hoeft te bewaren.
Leg uit wat HTTP is
Hypertext Transfer Protocol is het protocol voor de communicatie tussen een webclient en een webserver.. HTTP wordt gebruikt om bronnen zoals HTML-documenten op te halen.
Leg uit wat JSON is
JSON (JavaScript Object Notation) is een lichtgewicht formaat voor gegevensuitwisseling en het is volledig taalonafhankelijk. Het is gebaseerd op de programmeertaal JavaScript en is gemakkelijk te begrijpen en te genereren.
Leg uit wat XML is
Extensible Markup Language (XML) is een opmaaktaal die een reeks regels definieert voor het coderen van documenten in een formaat dat zowel door mensen leesbaar als door machines leesbaar is. XML is ontworpen om gegevens te vervoeren, niet om gegevens weer te geven.
Wat is het doel van versioning?
Versiebeheer geeft ontwikkelaars de mogelijkheid om hun API te verbeteren zonder de applicaties van de klant te breken wanneer nieuwe updates worden uitgerold.
Hoeveel en welke soorten versioning methoden zijn er?
3.
- URI Versioning
(http://api.example.com/v1) - Versioning using Custom Request Header
(Accept-version: v1) - Versioning using Accept header
(Accept: application/vnd.example.v1+json)
Welke twee packages behoren tot de Servlet API?
- javax.servlet (contains the classes to support generic servlet (protocol-independent servlet)
- javax.servlet.http (contains classes to support http servlet)
Welke klasse(n) moet je extenden om een Servlet te gebruiken?
Elke Servlet moet de java.servlet.Servlet-interface implementeren, u kunt dit doen door een van de volgende twee klassen uit te breiden:
- javax.servlet.GenericServlet
of - javax.servlet.http.HttpServlet.
De eerste is voor protocolonafhankelijke Servlet en de tweede voor http Servlet.
Wat is JAX-RS? (en waar staat het voor)
Java API for RESTful Web Services
JAX-RS is een op JAVA gebaseerde programmeertaal API en specificatie om ondersteuning te bieden voor gecreëerde RESTful Web Services. JAX-RS is niets meer dan een specificatie, een set interfaces en annotaties aangeboden door Java EE.
Waar bestaat een HTTP response sowieso uit?
Een Status Code