A mai trecut ceva timp, au mai aparut intrebari
Intrebarea 1
Ma gandesc, initial academic ca apoi sa se si intample, care e cea mai buna varianta pentru un site foarte mic si foarte simplu in mai multe limbi. Sa zicem 3-5 pagini aproape statice, in vreo 2-3 sunt formuri cu cate ~ 10 campuri si un buton, cu etichete si cate un mic paragraf de text pe langa ele, in vreo 5-10 limbi.
Am cautat pe Internet, m-am documentat, sunt vreo 5 idei mari si late, nici una fantastica:
- client side 1: fiecare pagina are cate un ID la fiecare element cu text in el, incarca dintr-un JSON limba respectiva si o scrie in fiecare element; daca vrei sa schimbi limba vei avea alta pagina cu alt URL, ceea ce nu e o idee rea deloc, poate cineva vrea sa o puna in Bookmarks direct in limba pe care o vede pe ecran
- client side 2: acelasi lucru ca mai sus, dar se incarca dintr-un XML care contine doar limba dorita
- client side 3: la fel ca la 2, dar cu un XML care contine toate limbile. Mi se pare un pic ineficient.
- client side 4: varianta ciobaneasca, un include la un limba.js care initializeaza variabile cu textul care trebuie si il scrie in elementele care trebuie. E banal de implementat chiar si de indieni
- client side 5: se iau textele in limba dorita de la server prin AJAX. Interesant, dar de ce sa faci asa ceva?
- server side 1: un ceva gen PHP genereaza pagina direct in limba dorita, citind textele de undeva: JSON, XML, include ciobanesc cu variabile, dar sigur nu prin AJAX de la o alta componenta; aberatia are si ea niste limite.
Care ar fi cea mai buna varianta dintre cele de mai sus, eventual alta nepomenita in lista?
Intrebarea 2
Se da un server de web pe Internet, un form PUBLIC care face validari prin Ajax la un server aflat intr-un DMZ/Intranet/nu-pe-Internet si alte diverse servere in Intranet care se pot folosi. Se pot face urmatoarele arhitecturi:
- formul pe serverul extern, AJAX server-side in Intranet, acces public la acel script pentru ca un username si o parola client-side (utilizata de browser = accesibila oricui) e ca si cum nu ar fi
- totul pe Intranet, formul publicat printr-un reverse proxy/firewall rule
Pana la urma e vorba de ce se expune pe Internet, dar in ambele cazuri mi se pare ca expunerea e egala: atat formul cat si componenta server-side pentru AJAX sunt accesibile din Internet. Ca securitate e cam tot aia, ca sa te conectezi la un server (pentru AJAX) trebuie sa il vezi din browser, ca acolo se face conexiunea. Asa ca ma gandesc la varianta 3:
- form pe internet, se conecteaza la un server-side tot pe Internet care se conecteaza la alt server side in Intranet. Avantaje: conexiunea catre serverul din Intranet exista, dar nu stie nimeni unde e, de asemenea se poate securiza cu ceva autentificare si HTTPS.
Intrebarile:
- dezavantaje pentru varianta asta cu un soi de AJAX-proxy?
- cum se pot implementa credentials pentru apelurile AJAX - merge ceva gen http(s)://username
assword@server?