Forum: PC-Programmierung Web API Cache/Proxy und Client/Session


von OT (Gast)


Lesenswert?

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

von Cartman (Gast)


Lesenswert?

> konfuse Fragestellung

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

Keep It Simple Stupid

von René H. (mumpel)


Lesenswert?

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.

: Bearbeitet durch User
von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

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)

von OT (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.