Saya beralih dari menjadi pengembang desktop menjadi pengembang web, dan saya mengalami kesulitan memahami mengapa HTTP tidak memiliki kewarganegaraan. Apa alasannya? Apa saja cara pengembang desktop seperti saya dapat melakukan transisi ke lingkungan pengembangan tanpa kewarganegaraan?
15
Jawaban:
Ini adalah penjelasan terbaik dari internet tanpa kewarganegaraan yang telah saya lihat:
Bagaimana Saya Menjelaskan REST ke My Wife
http://www.looah.com/source/view/2284
sumber
Menurut Anda bagaimana mungkin untuk menyimpan keadaan miliaran miliar koneksi miliaran? :) Jadi, Anda hanya menyimpan negara di mana diperlukan, dalam sesi.
BTW: HTTP bukan tanpa koneksi.
sumber
persistent connections
, yang disebut tetap-hidup. Saya bukan ahli jaringan tetapi, Anda memiliki koneksi nyata dalam HTTP sebagian besar waktu :)Sebagai pengembang desktop, Anda mungkin lebih nyaman dengan pengalaman UI yang kaya. Pindah ke web bisa terasa seperti mengambil langkah mundur. Di dunia web, ada lebih sedikit kebebasan kreativitas dan itu dapat memberi Anda rasa kendala. Jangan biarkan itu membuat Anda kecewa! Ada beberapa hal di luar sana yang dapat membantu Anda melakukan transisi dan berikut adalah daftar singkatnya:
Selamat pemrograman!
sumber
Karena ada waktu di mana tidak ada jutaan halaman web. Karena ada masa ketika hanya universitas dan fasilitas penelitian yang memiliki beberapa halaman. Ada saat ketika tidak ada broadband, dan http dikomunikasikan dengan 1200 modem baud ditempatkan di atas telepon meja. Ada saat ketika "aplikasi web kaya" akan membutuhkan, dalam pandangan mereka, jumlah bandwidth yang konyol. Dan ingat, TCP / IP dibuat karena internet awal sangat tidak dapat diandalkan.
HTTP 1.0 sekitar awal 1990-an. Pikirkan bagaimana internet saat itu, dan mengapa mereka mendesainnya seperti yang mereka lakukan.
sumber
Itu semua berevolusi. Internet ada sebelum browser web dan Web. Itu adalah pot bergelembung ftp, telnet, gopher, ping, jari dan beberapa bit dan bobs lainnya. Browser web pertama, Mosaic (? Saya pikir, sudah lama sekali, 1991 saya pikir, saya masih kuliah) bertindak sebagai semacam mishmash antara ftp dan penampil dokumen. Keajaiban terjadi karena Anda dapat memiliki tautan dalam dokumen yang akan menghasilkan dokumen baru.
Semua interaktivitas yang kita miliki sekarang telah berkembang selama 20 tahun berikutnya. Itu juga bukan evolusi yang bahagia. Kami memiliki perang browser, IE dan Netscape berusaha keras untuk mengendalikan standar (Sedikit penyederhanaan;)), dan berbagai pihak ketiga lainnya mulai memperkenalkan plug in untuk memungkinkan konten yang kaya. Java akan menjadi peluru ajaib dan tentu saja Flash. Apakah ada yang ingat dengan plugins VRML yang menjanjikan dunia 3d dan memberikan persis setengah lusin model 3d model Star Wars?
Saya agak terhanyut menjelang akhir, tetapi Anda mendapatkan idenya :)
sumber
Alasan utama berkaitan dengan kombinasi asedemia yang meyakini tujuan HTTP adalah, dan untuk alasan skalabilitas. HTML pada awalnya dirancang untuk berbagi informasi atau tesis lintas batas akademik. Itu teks murni bergaya. Tidak sampai browser pertama memungkinkan Anda untuk menyajikan gambar yang orang mulai pikirkan di luar model itu.
Pertimbangan berikut memperkuat keputusan kewarganegaraan:
Ketika halaman web menjadi lebih kompleks dan menyertakan banyak grafik dan stylesheet, HTTP diubah dengan bendera "tetap hidup". Itu akan membuat soket tetap hidup dan memungkinkan klien untuk meminta beberapa sumber daya dengan percakapan yang sama.
Mengingat model penggunaan internet saat ini, keputusan awal masih berlaku. Kadang-kadang bisa merepotkan, tetapi beberapa interaksi kecil dan terkuantisasi dengan skala server lebih baik daripada soket idle.
sumber
Jika yang Anda maksud adalah browser dua arah.
Alasan keamanan.
Misalnya SPAM !.
Mengambil Komunikasi Dua Arah Di Web Ke Tingkat Selanjutnya
Kalau tidak, internet menjalankan TCP / IP (dua protokol) dan UDP.
sumber
Dalam aplikasi desktop, pengguna diasumsikan melakukan beberapa tugas, dengan awal dan akhir yang ditentukan. Dalam aplikasi semacam itu, cukup masuk akal (tidak banyak, sebenarnya) bagi pengguna untuk masuk ke server apa pun yang menyediakan data mereka, dan tetap masuk sampai selesai.
Interaksi web tidak (biasanya) mengikuti model yang sama. Di situs eCommerce, misalnya, pengguna dapat tiba di deskripsi produk sebagai hasil pencarian Google, dan segera meninggalkan halaman itu untuk melihat penawaran situs lain dari produk yang sama. Atau dia mungkin memulai proses checkout, kemudian memutuskan bahwa produk itu terlalu mahal, dan meninggalkannya setengah jalan. Ide dasar "hypertext" menyiratkan kemampuan dan harapan untuk melompat dari satu lokasi ke lokasi lain.
Koneksi permanen menghabiskan sumber daya. Mungkin hanya soket jaringan, mungkin kumpulan permintaan basis data yang diuraikan; itu semua tergantung aplikasi. Mengingat pengguna yang dapat menghilang kapan saja, itu tidak masuk akal untuk menjaga sumber daya tersebut dilakukan.
Dalam praktiknya, tidak ada kebutuhan nyata bagi pengguna untuk memiliki koneksi permanen. Aplikasi web memelihara koneksi ke sumber daya apa pun (misalnya, basis data) yang dibutuhkan, dan membagikannya di antara semua permintaan pengguna. Kerangka kerja aplikasi web menyediakan sesi, yang merupakan tempat terbatas waktu untuk menyimpan data per pengguna untuk permintaan yang berbeda. Satu-satunya hal yang tidak dapat Anda lakukan (dengan mudah) adalah memiliki transaksi yang dikendalikan klien yang berjalan lama, tetapi itu adalah ide yang buruk bahkan dalam aplikasi yang mempertahankan koneksi.
sumber
Internet tidak harus tanpa kewarganegaraan - sebenarnya ketika Anda melihat Java EE - mereka memiliki EJB Stateful dan EJB Stateless.
Alasan utama mengapa pengembang merekomendasikan menggunakan arsitektur stateless adalah karena skalabilitas. Bayangkan mencoba mempertahankan status semua pengguna Anda setelah Anda menambah dan menjatuhkan server untuk mendukung lalu lintas Anda.
Sangat sulit untuk mengembangkan arsitektur tanpa kewarganegaraan. Poin utama adalah menjaga status sesedikit mungkin (biasanya id pengguna - lebih disukai dalam cookie) dan mengubah database sesuai kebutuhan.
sumber
Saya pikir itu dimulai seperti itu dan terus seperti itu. Sekarang ada begitu banyak infrastruktur yang dibangun di sekitarnya, tidak mungkin untuk mengubahnya.
Mungkin mulai stateless karena koneksi pada awalnya kurang andal, dan juga bandwidth lebih kecil. Jika Anda tidak memiliki banyak koneksi aktif, Anda dapat menangani lebih banyak lalu lintas dengan lebih mudah.
Harap edit atau tinggalkan komentar jika Anda memiliki informasi yang lebih baik, atau lebih baik lagi, kirim jawaban Anda sendiri!
sumber
Karena server menyediakan layanan (namanya). Anda membuat permintaan dan menerima jawaban - hanya itu yang ada di sana.
Berkenaan dengan membuat transisi ke pengembangan web saya percaya Formulir Web ASP.NET akan melakukannya dengan cara yang akan lebih dimengerti oleh Anda - tapi itu hanya karena menyembunyikan apa yang sebenarnya terjadi di bawah lapisan abstraksi.
sumber
Banyak yang bisa dipahami dengan menganalisis nama HTTP (HyperText Transfer Protocol). Itu tidak pernah dirancang untuk menjadi protokol UI yang kaya. Ide awalnya adalah berbagi dokumen dengan tautan di antara mereka. Saya meminta Anda sebuah dokumen, Anda membalas dengan salinan dokumen itu.
Awalnya HTTP hanya memiliki satu kata kerja GET. Dalam hal itu, itu dirancang untuk konten statis. Mengapa Anda perlu menyatakan ketika semua yang Anda lakukan adalah meminta dokumen yang dibagikan seseorang? Dan itulah mengapa HTTP tidak memiliki kewarganegaraan ... karena asalnya.
sumber