Abend 6: 15.06.2016 - Client-Server JS: REST & Express
Client-Server JS: REST & Express
Client-Server JS: REST & Express
Set of flashcards Details
Flashcards | 15 |
---|---|
Language | Deutsch |
Category | Computer Science |
Level | University |
Created / Updated | 13.11.2016 / 28.12.2017 |
Weblink |
https://card2brain.ch/box/abend_6_15_06_2016_clientserver_js_rest_express
|
Embed |
<iframe src="https://card2brain.ch/box/abend_6_15_06_2016_clientserver_js_rest_express/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Create or copy sets of flashcards
With an upgrade you can create or copy an unlimited number of sets and use many more additional features.
Log in to see all the cards.
JSON Web Token
In welcher Form kann ein JSON Web Token übermittelt werden?
1. Im HTTP-Header. (Auth-Header)
2. Im Body eines HTTP-Post.
3. Nicht zugelassen: (Direkt In der URL. Grund: http://stackoverflow.com/questions/32722952/is-it-safe-to-put-a-jwt-into-the-url-as-a-query-parameter-of-a-get-request )
4 Cookie (sehr oft)
Antwort: Alle drei Antworten sind möglich/richtig.
Für was wird die Http Methode "options" verwendet?
Die Methode Options ermöglicht dem Client herauszufinden, was man mit einer Ressource anstellen kann. Die Response auf einen OPTIONS- Request enthält alle verfügbaren und erlaubten Methoden. Z.b kann eine Antwort in einem Header so aussehen:
Allow: GET, HEAD
So kann der Client davon ausgehen, dass der Server auf GET und Head Requests reagiert.
Welche Ausgaben in der Konsole und im Browser werden hier über Express Middleware erzeugt?
...
var router = express.Router();
router.use(
function(req, res, next) {
console.log("-first log entry");
router.use(
function(req, res, next) {
console.log("-second log entry");
next();
});
router.get('/', function(req, res) {
res.send('-homepage');
});
...
Antworten:
a)
console:
-first log entry
-second log entry
Browser:
-homepage
b)
console:
-first log entry
Browser:
<no respond>
c)
console:
-first log entry
Browser:
-homepage
d)
console:
-second log entry
Browser:
-homepage
b)
Innerhalb der Funktion beim ersten "router.use()" fehlt die Weiterleitung mit der next() - Funktion.
Es wird nur der "first log entry" erzeugt, alle weiteren Routen werden nicht ausgeführt!
http://expressjs.com/en/guide/routing.html
-> Route handlers
Nenne zwei Möglichkeiten zur Versionierung einer REST-API.
- Versionsnummer wird als Media-Type im Accept-Header übergeben. Beispiel:
Accept: application/vnd.company.conference.track-v2+json
- Versionsnummer wird als Qualifier dem Media-Type im Accept-Header angehängt. Beispiel:
Accept: application/vnd.company.conference.track+json;v=2
- Version wird in der URI übergeben. Beispiel:
GET /api/v2/conference/tracks/6
Aus welchen drei Komponenten besteht das MVC-Pattern und für was sind sie zuständig?
- Model
Daten und Datenaufbereitung
- View
Darstellung der Daten aus dem Model
- Controller
Verknüpfung View mit Daten
Was sind die drei Parameter einer Custom-Middleware?
- request
- response
- next
Was bedeutet CORS (Cross-Origin Resource Sharing) im Zusammenhang mit REST
Cross-Origin Resource Sharing (CORS) ist ein Mechanismus, der Webbrowsern oder auch anderen Webclients Cross-Origin-Requests (Anfrage einer Ressource von einer anderen Domain) ermöglicht. Zugriffe dieser Art sind normalerweise durch die Same-Origin-Policy (SOP) untersagt.
Ob ein Cross-Origin-Request möglich ist oder nicht, kann der Webserver mittels HTTP Header dem Client übermitteln.
CORS wird vor allem bei öffentlichen REST-APIs benötigt.
Beispiel HTTP Header, welcher die HTTP Methode GET für die Domain http://foo.example freigibt:
Access-Control-Allow-Origin: http://foo.example
Access-Control-Allow-Methods: GET
Für was steht HATEOAS ? Was sind Vor- und Nachteile?
HATEOAS steht für "Hypermedia as the Engine of Application State".
- Prozessgedanke in der Ressource
- Media-Typen beschreiben die Ressource
- Aktionen werden ausgeführt beim folgen von Links
- Jede Antwort beinhaltet den "ApplicationState"
- Selbstbeschreibende API’s erzeugen Flexibilität
- Clients können die API «erforschen» ohne Dokumentation und Anleitung
Vorteile:
- Inline Dokumentation
- Explorable API
- Einfachere Clients, die URI ist sicher korrekt und aktuell.
Nachteile:
- aufwändig auf der Server-Seite
REST versus SOAP. Was sind die Unterschiede?
- SOAP fordert eine grössere Bindung an die Clients --> bei einer Veränderung des Servers mussder Client angepasst werden
- REST ist freundlicher für Netzwerkkomponenten und Administratoren (Firewall-Rulesauf URI oder HTTP-Methoden)
- SOAP hat einen grossen Overhead
- REST lässt sich durch seine Statuslosigkeit sehr einfach skalieren, SOAP ist nicht zustandslos
- SOAP ist einStandard, REST nicht --> beliebige Repräsentationen
- REST erfüllt ROA, SOAP nicht
- REST ist auf HTTP beschränkt (einfacher), SOAP nicht (http, jms, etc)
Welche Dateitypen werden von expressjs mit dem Befehl express.static an den browser gesendet ?
.html
.js
.css
and images
Welche Möglichkeiten gibt es die Daten auf dem Server zu speichern?
- In Memory: Array
- JSON
- NoSQL-Datenbanken
- Sql-Datenbanken
Was ist der Unterschied zwischen POST und PUT?
- PUT ist idempotent: wird derselbe Call mehrfach ausgeführt, verändert sich nichts. POST ist nicht idempotent.
- Beim PUT gibt der Client die URI der Ressource mit. Wenn die Ressource noch nicht existiert, wird sie unter dieser URI angelegt, ansonsten wird die überschrieben. Beim POST wird eine Ressource angelegt und die URI durch den Server generiert und in der Antwort an den Client zurückgegeben.
Was ist eine Middleware?
Eine Art Pipeline bei welcher man sich dazwischen einhängen kann.
Welche Datentypen gibt es in JSON?
- Boolean
- Number
- String
- Array
- Object
- Null (könnte als Object betrachtet werden)
Was gibt es für Standardmethoden bei ROA? Welche werden effektiv benutzt?
- GET
- POST
- PUT
- DELETE
- HEAD
- OPTIONS
Benutzt werden effektiv:
- GET
- POST
- PUT
- DELETE
-
- 1 / 15
-