HTTP memiliki Cookie HTTP. Cookie memungkinkan server untuk melacak status pengguna, jumlah koneksi, koneksi terakhir, dll.
HTTP memiliki koneksi persisten (Keep-Alive) di mana beberapa permintaan dapat dikirim dari Koneksi TCP yang sama.
HTTP memiliki Cookie HTTP. Cookie memungkinkan server untuk melacak status pengguna, jumlah koneksi, koneksi terakhir, dll.
HTTP memiliki koneksi persisten (Keep-Alive) di mana beberapa permintaan dapat dikirim dari Koneksi TCP yang sama.
Jawaban:
Meskipun beberapa permintaan dapat dikirim melalui koneksi HTTP yang sama, server tidak melampirkan arti khusus pada kedatangan mereka melalui soket yang sama. Itu semata-mata hal kinerja, dimaksudkan untuk meminimalkan waktu / bandwidth yang seharusnya dihabiskan membangun kembali koneksi untuk setiap permintaan.
Sejauh menyangkut HTTP, semuanya masih merupakan permintaan yang terpisah dan harus berisi informasi yang cukup untuk memenuhi permintaan tersebut. Itulah esensi dari "kewarganegaraan". Permintaan tidak akan dikaitkan dengan satu sama lain jika tidak ada beberapa informasi bersama yang diketahui server, yang dalam kebanyakan kasus adalah ID sesi dalam cookie.
Dari Wikipedia :
HTTP adalah protokol tanpa kewarganegaraan. Protokol tanpa kewarganegaraan tidak mengharuskan server untuk menyimpan informasi atau status tentang setiap pengguna selama beberapa kali permintaan.
Tetapi beberapa aplikasi web mungkin harus melacak kemajuan pengguna dari halaman ke halaman, misalnya ketika server web diperlukan untuk menyesuaikan konten halaman web untuk pengguna. Solusi untuk kasus ini meliputi:
- penggunaan cookie HTTP.
- sesi sisi server,
- variabel tersembunyi (saat halaman saat ini berisi formulir), dan
- Penulisan ulang URL menggunakan parameter yang dikodekan URI, misalnya, /index.php?session_id=some_unique_session_code.
Apa yang membuat protokol tanpa kewarganegaraan adalah bahwa server tidak diharuskan untuk melacak status lebih dari satu permintaan, bukan bahwa itu tidak dapat melakukannya jika diinginkan. Ini menyederhanakan kontrak antara klien dan server, dan dalam banyak kasus (misalnya melayani data statis melalui CDN) meminimalkan jumlah data yang perlu ditransfer. Jika server diminta untuk mempertahankan keadaan kunjungan klien, struktur penerbitan dan tanggapan permintaan akan lebih kompleks. Karena itu, kesederhanaan model adalah salah satu fitur terbesarnya.
Karena protokol stateless tidak memerlukan server untuk menyimpan informasi sesi atau status tentang masing-masing mitra komunikasi selama beberapa permintaan.
HTTP adalah protokol stateless, yang berarti koneksi antara browser dan server terputus begitu transaksi berakhir.
HTTP disebut sebagai stateless protocol
karena setiap permintaan dieksekusi secara independen, tanpa sepengetahuan tentang permintaan yang dieksekusi sebelumnya, yang berarti begitu transaksi mengakhiri koneksi antara browser dan server juga hilang.
Apa yang membuat protokol stateless
adalah bahwa dalam desain aslinya, HTTP adalah yang relatif sederhana file transfer protocol
:
Tidak ada hubungan yang dipertahankan antara satu koneksi dan yang lain, bahkan dari klien yang sama. Ini menyederhanakan kontrak antara klien dan server, dan dalam banyak kasus meminimalkan jumlah data yang perlu ditransfer.
Jika protokol HTTP diberikan sebagai protokol lengkap Negara, jendela browser menggunakan koneksi tunggal untuk berkomunikasi dengan server web untuk beberapa permintaan yang diberikan ke aplikasi web. Ini memberikan kesempatan ke jendela browser untuk menggunakan koneksi antara jendela browser dan server web untuk waktu yang lama dan untuk menjaga mereka dalam keadaan siaga untuk waktu yang lama. Ini dapat membuat situasi mencapai koneksi maksimum server web meskipun sebagian besar koneksi di klien idle.
HTTP adalah tanpa sambungan dan ini adalah hasil langsung bahwa HTTP adalah protokol tanpa negara. Server dan klien saling mengetahui hanya selama permintaan saat ini. Setelah itu, keduanya saling melupakan. Karena sifat protokol ini, baik klien maupun browser tidak dapat menyimpan informasi antara permintaan yang berbeda di seluruh halaman web.
Apa itu stateless ??
Setelah permintaan dibuat dan respons diberikan kembali ke klien, koneksi akan terputus atau dihentikan. Server akan melupakan semua tentang pemohon.
Kenapa stateless ??
Web memilih untuk menggunakan protokol stateless. Itu adalah pilihan jenius karena tujuan asli dari web adalah untuk memungkinkan dokumen (halaman web) dilayani dengan sangat besar. orang yang menggunakan perangkat keras yang sangat dasar untuk server.
Mempertahankan koneksi yang sudah berjalan lama akan menjadi sumber daya yang sangat intensif.
Jika web dipilih protokol stateful maka beban di server akan ditingkatkan untuk menjaga koneksi pengunjung.
HTTP
tidak bernegara. TCP
adalah negara. Tidak ada yang disebut HTTP connection
, tetapi hanya HTTP request
dan HTTP response
. Kita tidak perlu apa pun untuk dipertahankan untuk membuat yang lain HTTP request
. Header koneksi yang "tetap-hidup" berarti TCP
akan digunakan kembali oleh HTTP
permintaan dan respons berikutnya , alih-alih memutuskan dan membangun kembali TCP
koneksi setiap saat.
Saya pikir seseorang memilih nama yang sangat disayangkan untuk konsep NEGARA dan itulah sebabnya seluruh kesalahpahaman ini disebabkan. Ini bukan tentang menyimpan segala jenis sumber daya, tetapi tentang hubungan antara klien dan server.
Klien: Saya menyimpan semua sumber daya di pihak saya dan mengirimkan kepada Anda "daftar" semua item penting yang perlu diproses. Lakukan pekerjaanmu.
Server: Baiklah .. biarkan saya mengambil tanggung jawab untuk memfilter apa yang penting untuk memberi Anda respons yang tepat.
Yang berarti bahwa server adalah "budak" dari klien dan harus melupakan "tuannya" setelah setiap permintaan. Sebenarnya, STATELESS hanya merujuk pada status server.
https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_1_3