Naprawdę nie rozumiem „Backend / Serverside”, jeśli chodzi o tworzenie stron internetowych?


18

W świecie deweloperskim, co dokładnie robią programiści zaplecza / serwera? Chyba tak naprawdę nie rozumiem całej koncepcji.

Zrobiłem układy HTML / CSS i projekt strony internetowej oraz trochę SQL z PHP (wciąż podnosząc swoje umiejętności, to dla mnie raczej poboczny projekt). Zrobiłem również niewielką ilość JavaScript / JQuery.

Ale nie rozumiem działania „zaplecza”, takiego jak języki skryptowe (Rails / Python / etc) i tym podobne. Co dokładnie z nimi „robisz”?


8
Jak myślisz, gdzie idą pytania i jak na tej stronie?
Mayank

Odpowiedzi:


17

Jeśli korzystałeś z PHP, to wykonałeś pracę po stronie serwera!

Mówiąc ogólnie, kod po stronie klienta jest uruchamiany na twoim komputerze, w przeglądarce internetowej, a kod po stronie serwera jest uruchamiany na komputerze w Internecie, a wyniki obliczeń po stronie serwera są następnie przesyłane przez Internet do twojego przeglądarka.

Kiedy napisałeś kod PHP, który uruchamiał instrukcje SQL, wywołania SQL były wykonywane na zdalnym komputerze (serwerze), a wynik - zwykle w postaci wygenerowanego HTML - jest następnie przesyłany przez Internet do przeglądarki.

Z drugiej strony JavaScript jest uruchamiany w przeglądarce. Podobnie jak CSS.

Sprawdź różnicę między programowaniem po stronie klienta a programowaniem po stronie serwera, aby uzyskać więcej informacji.


13

Podstawowym założeniem jest:

wprowadź opis zdjęcia tutaj

Użytkownik daje swój wkład, przesyła go przez jakąś sieć, a następnie serwer wykonuje magię zgodnie z danymi wejściowymi.

Zasadniczo chcesz, aby wszystkie zabezpieczenia i sprawdzanie poprawności były przeprowadzane po stronie serwera. Z drobiazgami działającymi po stronie klienta, takimi jak dyskretne sprawdzanie poprawności formularzy (nadal jednak trzeba sprawdzać poprawność po stronie serwera!).

Wielkie pytanie: dlaczego?

Użytkownicy mogą modyfikować informacje na swoim komputerze. Jako przykład zobacz trenery gier, które modyfikują wartości pamięci, aby użytkownicy mogli „zhakować” grę. Jeśli robisz najważniejsze rzeczy na swoim komputerze, w swoim fizycznym obiekcie, znacznie zmniejszasz ryzyko ingerencji w twoje kontrole bezpieczeństwa.


6
Nie korzystałeś z kółek odręcznych. :(
glasnt

Ok, więc po co właściwie są ramy aplikacji sieciowych?

3
@Mercfh: Aby uprościć. Dają ci fundament, na którym zbudujesz swoją wizję. Czy chcesz zbudować platformę uwierzytelniania? Co powiesz na obsługę dat i widoków oraz kontrolerów i routingu. Nie sądzę, chyba że byłoby to ćwiczenie akademickie. Potrzebujesz frameworka, ponieważ początkowo miałeś problem do rozwiązania, a obsługa dat nie była nim. :)

0

projektujesz elementy interfejsu użytkownika, projektując systemy, które współdziałają z klientem twoich systemów. Zauważ, że słowo „klient” jest dość duże, ale w zasadzie oznacza, że ​​pracujesz nad interfejsem użytkownika, gdy zapewniasz interfejs do świata zewnętrznego.

Większość stron internetowych to tylko interfejsy, to znaczy, że dostarczają one informacji zewnętrznemu światu i przez większość czasu informacje te mogą być przechowywane po prostu jako tekst w plikach HTML.

Zaplecze projektujesz, gdy potrzebujesz świadczyć usługi i obejmować funkcje, z których będzie korzystać Twój interfejs. Pozwala to przenieść część obciążenia z klienta (front-end) na serwer (back-end). Zrobisz to w przypadkach, gdy zajdzie potrzeba skoordynowania informacji od różnych klientów, którzy mogą jednocześnie uzyskiwać dostęp do systemu. Lub jeśli potrzebujesz użyć centralnego repozytorium danych do zestawienia danych dynamicznych, lub ponownie, jeśli potrzebujesz określonych wymagań bezpieczeństwa. Ta lista nie jest wyczerpująca, a jedynie szybkie przykłady.

krótko mówiąc, Front-end (klient) przedstawi informacje światu zewnętrznemu. Zwykle są to ludzie za pomocą GUI HTML lub w inny sposób.

Zaplecze zapewni środki do scentralizowania usług w celu korzystania z interfejsu użytkownika. Korzystanie z zaplecza nie jest obowiązkowe i zwiększa złożoność systemu, ale pozwala lepiej zarządzać złożonością właściwą systemowi, który próbujesz zbudować.

Na przykład możliwe jest świadczenie usługi, takiej jak wiki wyłącznie za pośrednictwem interfejsu, ale będzie miało wiele ograniczeń, które użycie zaplecza do przechowywania danych i udostępniania ich na interfejsie rozwiązałoby w bardziej naturalny sposób.


Twoje wyjaśnienie jest świetne, z wyjątkiem tego, że mówisz, że większość stron internetowych to tylko interfejs użytkownika. Być może w 2003 r., Ale dzisiaj powiedziałem, że „większość”, podobnie jak większość, ma pewne interakcje z zapleczem / bazą danych.
Kyle

Patrząc na SO, Facebooka i inne tego świata, można by przenieść statyczną stronę internetową do muzeum, ale nadal istnieje duża liczba stron, stron głównych dla firm itp., Które są właśnie takie. To powiedziawszy, masz rację, że ma tendencję do znacznego zmniejszenia, ponieważ samo zainstalowanie wordpressa i poprawienie CSS osiągnęłoby ten sam wynik w znacznie łatwiejszej do utrzymania formie. Zauważ jednak, że interfejs ten określa również interfejs API RESTfull, który witryna udostępnia, podczas gdy backend jest sposobem implementacji tego interfejsu API.
Newtopian

0

Frontend to rzeczy, które działają w przeglądarce, backend, taki jak PHP, działa na serwerze i przechowuje dane w bazie danych i robi takie rzeczy.


0

Moim zdaniem praca po stronie serwera (o której już wspomniano, to wszystko, co działa na serwerze, z którego uzyskuje się dostęp do witryny) jest tym, co daje stronie prawdziwe życie. Wiele funkcji wciąż można uzyskać za pomocą technologii po stronie klienta, ale moim zdaniem jest to znacznie bardziej skomplikowane podejście i znacznie mniej bezpieczne, ponieważ klienci mają dostęp do wszystkiego, co znajduje się w kodzie klienta. PHP i ASP są w pewnym sensie hybrydowymi językami programowania, które są przeznaczone prawie wyłącznie do udostępniania zawartości strony internetowej w przeglądarce po wykonaniu pewnych czynności obliczeniowych. Kiedy zaczynasz pracę z Pythonem, Ruby, Java lub innymi językami programowania, masz więcej mocy i możliwości, ale trochę więcej pracy, aby wysłać wynikowe informacje do klienta na końcu procesu.


0

Każda typowa aplikacja / strona internetowa ma dwie strony.

  1. Front Side - Który element sterujący to interfejs / układ / kolory / czcionki itp

  2. Back Side - Obsługuje manipulowanie danymi w bazie danych lub manipulację plikami, robi dużo logiki, jeśli to, zrób to, jeśli nie, itp. Integruje się z oprogramowaniem serwera WWW, takim jak Apache / IIS / etc, i serwerem bazy danych oprogramowanie takie jak mySQL / PostreSQL / MS SQL Server.

Tylna strona jest znacznie potężniejszą stroną, ponieważ może robić tak wiele rzeczy, od tworzenia plików programu Excel, generowania raportów, wykonywania obliczeń, uzyskiwania danych z różnych serwerów.

Następnie przygotowuje i wyświetla te dane, w jaki sposób konfigurowana jest strona frontowa.

Osiąganie dobrych wyników w obu przypadkach jest ciężką pracą, dużą ilością ćwiczeń, nauki i samodyscypliny.

Jeśli chcesz być najlepszy, ćwicz i nigdy nie przestawaj się uczyć i nigdy nie zakładaj, że znasz wszystkie odpowiedzi.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.