HTTP and remote API:s Flashcards

1
Q

Vad styr HTTP?

A

HTTP är det protokoll som styr hur data skickas mellan server och klient.

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

Vilka är de fyra vanliga http-metoderna?

A

GET, PUT, POST, DELETE

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

Vilka http-metoder finns utöver de fyra vanliga?

A

HEAD: hämtar bara huvudet av svaret.
OPTIONS: Ta reda på vilka verb som stöds av en sida eller resurs.
PATCH: Partiella uppdateringar av en resurs.
TRACE: Få tillbaka exakt begäran som skickats, för felsökning.
CONNECT: Upprätta tunnelanslutning via en proxy för att sedan övergå till SSL/TLS

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

Vad är det för skillnad på URL och URI?

A

URN är som ett personnummer – det identifierar vad eller vem resursen är, men inte var den finns.
URL är som en hemadress – det anger var resursen finns och hur man får tillgång till den.

URI täcker båda begreppen – både identifiering (URN) och lokalisering (URL).

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

Vad betyder statuskoden 200?

A

OK! Begäran lyckades.

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

Vilka andra vanliga statuskoder finns i spannet 5xx utöver 500 internal server error?

A

501 – Not Implemented: Metoden stöds inte av servern.
502 – Bad Gateway: Felaktigt svar från en uppströmsserver.
503 – Service Unavailable: Servern är överbelastad eller underhålls.
504 – Gateway Timeout: Timeout från uppströmsservern.
505 – HTTP Version Not Supported: Servern stödjer inte den använda HTTP-versionen.
507 – Insufficient Storage: Servern har inte tillräckligt med lagringsutrymme.
509 – Bandwidth Limit Exceeded
511 – Network Authentication Required: Kräver nätverksautentisering (t.ex. på offentliga Wi-Fi-nätverk).

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

Vad är HTTP-headers?

A

Viktiga metadata om begäran eller svar som skickas med begäran eller svar.

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

Varför används sessions och cookies?

A

För att HTTP är stateless. Varje begäran är en ny händelse och kommer inte ihåg tidigare kommunikation. Cookies sparas på klienten. sessions sparas på servern. De lagrar små bitar av information om din interaktion med en webbplats.

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

Vad är skillnaden mellan http och https?

A

De fungerar likadant men https krypterar all information som skickas.

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

Vad står SSL för?

A

Secure Sockets Layer

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

Vad står TLS för?

A

Transport Layer Security

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

Vilka är de vanligaste typerna av remote API?

A

REST, SOAP och GraphQL

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

Vad står SOAP för?

A

Simple Object Access Protocol

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

Vad är GraphQL?

A

Ett flexibelt API-format som gör det möjligt att ange exakt vilka fält och vilka data man vill ha i en begäran. Kan leda till färre och mindre dataöverföringar.

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

Hur gör man en vanlig GET-förfrågan med JS?

A
fetch('https://api.example.com/users')
  .then(response => response.json())  // Konverterar svar till JSON-format
  .then(data => {
    console.log(data);  // Hantera och visa datan
  })
  .catch(error => console.error('Error:', error));  // Fånga eventuella fel
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hur gör man en vanlig POST-förfrågan med JS?

A
fetch('https://api.example.com/users', {
  method: 'POST',  // Använd POST-metoden
  headers: {
    'Content-Type': 'application/json',  // Talar om att vi skickar JSON-data
  },
  body: JSON.stringify({
    name: 'John Doe',
    email: 'john.doe@example.com'
  })
})
  .then(response => response.json())  // Konvertera svar till JSON-format
  .then(data => {
    console.log('Success:', data);  // Hantera svaret från servern
  })
  .catch(error => console.error('Error:', error));  // Fånga eventuella fel
17
Q

Två sätt att autentisera vid API-förfrågningar

A
  1. API-tokens
  2. OAuth
18
Q

Fem steg för att göra API-förfrågan?

A
  1. Välj endpoint
  2. Välj HTTP-metod (GET, PUT, POST, DELETE)
  3. Skicka en begäran med nödvändiga headers och eventuell data (t.ex. i JSON-format).
  4. Hantera svaret från servern (t.ex. omvandla det till JSON och bearbeta det).
  5. Fånga och hantera error.
19
Q

Varför används API-versionering?

A

För att stödja bakåtkompatibilitet och inte störa klienter som redan använder APIet, men kunna fortsätta utveckla det.

20
Q

Tre sätt att implementera API-versionering?

A

URL baserad - versionsnummer läggs till i api-endpoint GET https://api.example.com/v1/users
Query-parameter - lägg till versionsnummer som en parameter i förfrågan GET https://api.example.com/users?version=1
Headers - Ange version i förfrågans headers:

fetch('https://api.example.com/users', {
  method: 'GET',
  headers: {
    'API-Version': '1'
  }
});
21
Q

Tre metoder för API-autentisering?

A

API-keys
OAuth
JWT (JSON web tokens)

22
Q

Hur fungerar API-keys?

A
  1. Generering: API-nyckeln genereras av API-leverantören och ges till utvecklaren eller applikationen som vill använda API:et.
    1. Inkludering i API-anrop: När en applikation gör en förfrågan inkluderas klient nyckeln i header body eller som en query parameter.
23
Q

Vilka autentiseringsalternativ är bättre för stora applikationer/med högre säkerhetskrav?

A

OAuth, JWT

24
Q

Vad är rate-limiting/API-throttling?

A

Att begränsa antalet/frekvensen av begäranden till API:et.

25
Q

Vad är rate-limiting?

A

Att begränsa antalet förfrågningar som kan göras under en viss tidsperiod.

26
Q

Vad är API-throttling?

A

Att sakta ner behandlingen av förfrågningar temporärt.

27
Q

Vilka tre delar bör ett bra felmeddelande innehålla?

A

Själva felmeddelande: En klar beskrivning av vad som gick fel.
Felkod: En specifik kod som kan användas för att identifiera typen av fel.
Detaljer: Eventuell ytterligare information som kan hjälpa utvecklaren att felsöka (t.ex. ogiltiga fält eller saknade parametrar).

28
Q

Problem:
Att göra API-förfrågningar för varje ny begäran kan bli resurskrävande, särskilt om data inte förändras så ofta.

A

Lösning: Caching
Caching innebär att lagra svar från tidigare API-förfrågningar så att samma data kan återanvändas utan att behöva göra en ny förfrågan till servern.