Client-Server Communication

Client-Server Communication

Andrii Komarnitskyi

@komarnitskyi

Хто клієнт а хто сервер?

Клієнт

Клієнт - це звичайні користувачі які підключені до мережі і здійснюють доступ через певне ПО(напр. браузер).

Сервер

Віддалений комп'ютер із постійним(?) стабільним(?) швидким(?) підключенням до мережі, на якому зберігаються сайти чи додатки.

Довга дорога одного запиту

Що робить браузер?

HTTP

HyperText Transfer Protocol

Протокол досі актуальний, хоча був розроблений ще у 90х роках для передачі гіпертексту

HTTPS

HyperText Transfer Protocol Secure

Використання HTTPS забезпечує шифрування всіх заповідей/відповідей між клієнтом та сервером

Яким чином спілкуємося із сервером?

AJAX

Asynchronous JavaScript and XML

CORS

Cross-origin resource sharing

fetch

fetch

const promise = fetch(url[, options]);

fetch

            const promise = fetch(url[, options]);
            promise
                .then(response => {
                    console.log(response);
                })
                .catch(console.error)
        

Axios

Axios

npm install --save axios

Axios

            import axios from 'axios';
             
            axios.get(url)
            axios.put(url, data)
            axios.post(url, data)
            axios.delete(url)
        

Власне комунікація

Поговоримо про REST

Чому? Тому що це найбільш використовуваний підхід (у різних імплементаціях) до комунікації між клієнтом та сервером

REST

Representational State Transfer

Що нам потрібно?

Що нам потрібно?

Популярні статус-коди

Популярні статус-коди

Статус код - 418

Отримати всіх користувачів

GET: /users

Отримати користувача із id === :id

GET: /users/:id

Отримати адресу користувача із :id

GET: /users/:id/address