Web API Cache/Proxy und Client/Session

Gast #7145220
Hi Leute,

entschuldigt die konfuse Fragestellung! Ich kann's irgendwie nicht 
exakter Formulieren - einfach nachfragen bitte.

Ich möchte eine winzige Internet-"App" bauen.
Wie bei vielen:

1. Nutzer lädt Seite vom Server
2. Nutzer gibt Daten ein
3. Daten werden beim Server angefragt
4. Server holt die Daten aus dem Cache oder von der externen API
5. Server sendet Daten an Nutzer

Die Fragen betreffen hauptsächlich die Client/Server-Aufteilung.

A) Damit Clients nicht indirekt die externe API ausnutzen, muss es 
mindestens ein Rate-Limit geben.
B) Sofern die Daten nicht mit der Seite, sondern per eigener API 
ausgeliefert werden, sollte der Zugang nur von der Seite erlaubt sein.

Bis auf die "Daten" könnte die "Seite" statisch ausgeliefert werden.
Das bedingt eine eigene API. Wie können dann A) und B) realisiert 
werden?

In beiden Fällen muss der Client identifiziert werden (Session/Cookie).
Das würde im Fall der eigenen (separaten) API nicht mehr stateless 
(REST) gehen, oder? Und statisch ausliefern geht dann wohl auch nicht.

Dann klingt es so, als sei es einfacher, die Seite "server-side" mit den 
Daten zu versehen. Oder..?
Gast
> konfuse Fragestellung

Ich hoffe mal du verdienst nicht deine Broetchen mit sowas.
Weil dann auch nur eine konfuse Loesung herauskommt.

Keep It Simple Stupid
Zu B.:
Das nennt man POST. GET muss man im Backend prüfen und verbieten. 
Zusätzlich verhindert man, dass das Formular (Frontend) per Browserzeile 
ausgefüllt werden kann.  Der Unterschied zwischen Post und Get wird auf 
einigen Internetseiten erklärt.
(Firma: egal)
OT schrieb:
> Dann klingt es so, als sei es einfacher, die Seite "server-side" mit den
> Daten zu versehen. Oder..?

Das ist eigentlich der "übliche" Weg. Z.B. mit PHP den html-code 
"zusammenbasteln" (anhand der im Request übergebenen Parameter) der dann 
an den Client zum Anzeigen ausgeliefert wird.

Das auf der Client-Seite zu machen, macht man eher wenn die angezeigten 
Daten dynamisch geändert werden sollen während die Seite "offen" ist und 
nicht neu vom Server geladen wird - Stichwort z.B. AJAX

- https://de.wikipedia.org/wiki/Ajax_(Programmierung)
Gast
OK, lassen wir das mit der externen API mal weg.
Zur Anschauung sei die "Anwendung" das Abfragen der Buchstaben im 
Alphabet nach Index, also 0->'A' etc.

Zwei beispielhafte requests:

Server-side (ganze Seite mit Daten erzeugt)

    POST /alphabet.php ...
    ...
    index=0

Hier kann über die (sichere) Session die Abfrage erlaubt werden.


API (nur Daten, per Ajax in html Seite geholt)

    GET api?index=0 ...

Wenn auch für die API Sessions möglich sind, sollte das Rate-Limiting 
kein Problem sein.

B) ist nur lösbar, wenn die Seite gleich mit einem Schlüssel (oder der 
Session) ausgeliefert wird, also server-side.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 4 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.