Module 3: Webservices Flashcards

1
Q

Wat is een servlet?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Van hoeveel instanties draait een Servlet?

A

Altijd maar 1 instantie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wat maakt een Servlet schaalbaar?

A

Elk request wordt (parallel) afgehandeld in een aparte thread.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Waar wordt een filter in een web container voor gebruikt?

A

Een filter wordt gebruikt om requests en responses te filteren, oa. voor autorisatie of performance logging.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welke onderdelen bestaan er in een Web Container?

A
  • Servlet
  • Filter
  • Listener
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Waar wordt een listener in een web container voor gebruikt?

A

Een listener wordt getriggerd als die benodigd is, oa. voor het starten van een sessie elke keer als er verbinding wordt gemaakt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wat is REST?

A

REST (REpresentational State Transfer) is een architectuurstijl die gebruikt maakt van HTTP (HyperText Transfer Protocol).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Is HTTP stateless?

A

HTTP is stateless, al is het wel mogelijk om de staat bij te houden (via sessies bijvoorbeeld).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Waar staat URL voor?

A

Uniform Resource Locator

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wat zijn de HTTP Methodes?

A
  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • TRACE
  • OPTIONS
  • PATCH
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wat is een HTTP header?

A

Een header is meta-informatie over de request/response. Headers zijn key-value pairs van informatie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Welke header property is al enige verplicht (sinds HTTP 1.1) en welke waarde moet die hebben?

A

Host.

Deze moet als waarde hebben de host waar het verzoek naar toe moet gaan, bijvoorbeeld academy.quintor.nl.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wat zijn Cookies?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hoe schrijf je een key&value in de URL als parameter?

A

www.example.com?key=value

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wat zijn de groepen status codes?

A
  1. Informational responses (100–199)
  2. Successful responses (200–299)
  3. Redirects (300–399)
  4. Client errors (400–499)
  5. Server errors (500–599)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wat is REST?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wat zijn de constraints/beperkingen van REST?

A

Er zijn zes architectonische beperkingen:

  • Uniform Interface
  • Stateless
  • Cacheable
  • Client-Server
  • Layered System
  • Code on Demand
18
Q

Hoe pas je caching toe aan een RESTful interface?

A

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.

19
Q

Is REST stateless?

A

Ja

20
Q

Wat zijn de vier basis HTTP verbs die gebruikt worden bij REST?

A

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

21
Q

Wat is het Richardson REST Maturity Model?

A

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.

22
Q

Benoem de niveau’s binnen het Richardson REST Maturity Model

A

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.

23
Q

Wat staat HATEOAS voor en wat is het?

A

Hypermedia As The Engine of Application State

24
Q

Waar staat DTO voor en waarom gebruiken we het?

A

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.

25
Q

Leg uit wat de REST constraint ‘Uniform Interface’ inhoud

A

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).

26
Q

Leg uit wat de REST constraint ‘Stateless’ inhoud

A

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.

27
Q

Leg uit wat de REST constraint ‘Cacheable’ inhoud

A

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.

28
Q

Leg uit wat de REST constraint ‘Client-Server’ inhoud

A

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.

29
Q

Leg uit wat de REST constraint ‘Layered system’ inhoud

A

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.

30
Q

Leg uit wat de REST constraint ‘Code on Demand’ inhoud

A

Is een optionele functie die impliceert dat servers ook uitvoerbare code aan de client kunnen leveren.

31
Q

Hoe maakt REST de applicatie flexibeler?

A

Door niet gebruik te maken van states. Essentiële gegevens worden in één verzoek behandeld, zodat de server geen staat-informatie hoeft te bewaren.

32
Q

Leg uit wat HTTP is

A

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.

33
Q

Leg uit wat JSON is

A

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.

34
Q

Leg uit wat XML is

A

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.

35
Q

Wat is het doel van versioning?

A

Versiebeheer geeft ontwikkelaars de mogelijkheid om hun API te verbeteren zonder de applicaties van de klant te breken wanneer nieuwe updates worden uitgerold.

36
Q

Hoeveel en welke soorten versioning methoden zijn er?

A

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)
37
Q

Welke twee packages behoren tot de Servlet API?

A
  • javax.servlet (contains the classes to support generic servlet (protocol-independent servlet)
  • javax.servlet.http (contains classes to support http servlet)
38
Q

Welke klasse(n) moet je extenden om een Servlet te gebruiken?

A

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.

39
Q

Wat is JAX-RS? (en waar staat het voor)

A

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.

40
Q

Waar bestaat een HTTP response sowieso uit?

A

Een Status Code