EP 47

Ngobrolin HTTP - Ngobrolin WEB

Bagikan:

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. Topik, tautan dan pertanyaan menarik bisa dilayangkan ke https://bit.ly/ngobrolinweb Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.

Transkrip Bantu Koreksi

0:15Hai, hai, hai. Selamat malam.

0:21Halo semuanya, gimana kabarnya?

0:24Loh, kok cuman berdua? Satu lagi mana?

0:27Menyusul, menyusul.

0:28Menyusul ya, Eka akan segera menyusul, tenang aja.

0:31Kita masih formasi lengkap malam hari ini. Seperti biasa, hari ini adalah hari Selasa,

0:38jadi saatnya kita untuk ngobrolin.

0:40Ngobrolin, wey.

0:42Setelah minggu lalu kita tidak live, malam hari ini kita live lagi.

0:49Minggu lalu itu bahasan tentang Wasm kita rekam di hari Sabtu ya.

0:56Eka menuju luar kota.

1:00Luar negeri.

1:02Luar kota dulu.

1:04Oh iya luar kota dulu, betul-betul.

1:06Ngurusin visa ya, ngurusin visa.

1:09Ups, gak boleh disebutin ya.

1:11Spoiler, ini spoiler.

1:14Sekarang Eka aja dimana.

1:16Mudah-mudahan setelah waktu Eka nya balik, nanti kita dapat banyak ilmu baru.

1:21Oh iya, harus dong.

1:23Mudah-mudahan di sana juga bisa live. Gak bisa ya, susah ya.

1:27Just itu di sana bisa kali.

1:31Pagi?

1:32Pagi.

1:33Lagi kegiatan kali, mungkin sehari sebelum acara atau setelah acara.

1:38Kebayang sih, ah udah biarin aja.

1:40Biar Eka nya nanti, biar banyak dapat insight yang baru.

1:44Iya, pertama kali ya.

1:47Kita Eka nya nanti malah ngomongin Eka, loh live lagi.

1:52Sengaja, sengaja sih.

Lihat transkrip lengkap

1:54Oke, sebelum kita lebih gosipin teman-teman yang lain.

1:59Gimana kabarnya teman-teman semuanya?

2:01Boleh dong, absen-absen dulu di kolom komentar buat yang sudah hadir.

2:06Sambil menunggu.

2:08Oh iya, kabar-kabarnya gimana, ada masalah apa di kantor?

2:11Jangan masalah politik ya, masalah teknis.

2:14Mungkin lagi ngadepin masalah, mungkin HTTP status yang membingungkan, misalkan.

2:20Atau cerita-cerita juga dong dari 48 episode.

2:2649 episode nya kita, apa yang sudah teman-teman lakukan?

2:30Apa yang sudah teman-teman pernah uji coba?

2:32Atau mungkin sudah implementasi langsung di production apa?

2:37Cerita-cerita dong, jadi kita bisa bahas nanti.

2:40Betul, betul.

2:41Kisah sukses.

2:42Kisah sukses, iya saya juga ngalamin tuh kan biasanya setiap Senin itu live streaming.

2:49Beberapa bulan yang lalu itu, belajar bareng-bareng ini TypeScript.

2:55Terus tiba-tiba ada yang message katanya dia implementasi TypeScript di kantor migrasi.

2:59Wah senang banget gitu.

3:01Gara-gara habis belajar, terus dia implementasi di kantor dan sukses gitu, kita senang banget gitu ya.

3:06Jadi kalau teman-teman punya pengalaman gitu ya, wah gara-gara nonton ini saya jadi implementasi apa ya?

3:13Performance ya, pakai apa, layout shiftnya jadi lebih bagus gara-gara insight dari beberapa episode yang lalu misalkan.

3:23Iya.

3:24Boleh ya, bagi-bagi cerita ya.

3:26Kita pernah bahas tentang font, web component, image, service worker, autentikasi.

3:35Banyak ya.

3:36Fugu, nah kalau ada Fugu, nah kita pernah undang lagi itu bintang Talmu Superstar, Fugu.

3:43Mas Tomas.

3:44Mas Tomas.

3:45Ada accessibility.

3:48Accessibility.

3:50SVG, Core Web Vital, module bundler, saya bacanya ini, kita pernah bahas ini ya gitu ya.

3:57Iya, ternyata udah banyak juga ya.

4:00Akhir itu web assembly yang lalu, nah ada ya bisa teman-teman sharing-sharing apa gitu.

4:06Biar kita senang mendengar cerita-cerita teman-teman.

4:10Uy, Audi, Audi ini penonton setia nih ya.

4:14Pengen ajukan JavaScript sebabnya bahasa awal di kampus biara anak-anak baru belajar cara debug.

4:19Apa hubungannya belajar JavaScript dengan cara debug?

4:22Memang bahasa lain nggak ada debug.

4:25Mungkin pakai debugger itu kali ya.

4:30Lebih gampang ya pakai debugger ini ya.

4:33Saya setuju sih JavaScript di awal kuliah, setuju sih, setuju banget gitu.

4:40Karena kan barrier itu entry-nya lebih landai kan.

4:45Bukan yang jadi, jadi ini, ini.

4:49Oke kok kita jadi ngelatur ya?

4:51Dua ini ya, ada dua kiblat lah ya.

4:55Kan ada yang suka memulai dengan sesuatu yang sulit dulu.

5:00Setelah itu belajarannya jadi gampang.

5:02Ada yang mungkin overwhelmed.

5:04Jadi dia harus belajar yang ringan-ringan dulu.

5:06Nanti step by step, gradually naik ke level berikutnya.

5:10Karena JavaScript itu tidak data, bukan type strict.

5:16Bukan, dynamics.

5:19Jadi nggak strict, typing data type-nya nggak strict.

5:23Jadinya migrasi yang sudah data type-nya yang strict nanti bakal pusing.

5:31Iya, mungkin ya, mungkin konsiderasinya adalah

5:37karena ada mata kuliah yang berhubungan dengan tipe data dan struktur data.

5:41Kalau ngomongin tipe data di JavaScript kayaknya nggak begitu relevan.

5:44Karena kita bisa ngapain aja itu.

5:46Jadi pakai type script itu pun kena dipaksa.

5:50Iya betul.

5:52Nah ini dia sudah datang.

5:56Apa itu type script?

5:58Kita lagi bahas ini.

6:00Tadi kita bahas kamu loh.

6:02Dari Audi.

6:06Pengen JavaScript supaya bisa di awal kuliah, di awal kampus.

6:14Dan ada dua opini.

6:19Ada yang pengen belajar yang sulit dulu, belajar type language yang strict.

6:25Ada yang seperti Audi, pengennya yang ringan dulu.

6:29Jadi biar data entry-nya lebih rendah.

6:31Tapi sebenarnya ngaduh ke apa sih, approach-nya nggak sih?

6:35Kayak functional programming, object oriented.

6:39Kalau dikasih JavaScript dulu, terus nanti pas belajar C++ atau Python,

6:47apa, pusing nggak?

6:49Setuju, setuju.

6:51Itu insight yang menarik.

6:53Karena JavaScript itu, sorry itu Shay, bahasanya banci.

6:57Bisa kemana aja.

6:59Mau functional, bisa.

7:01Mau OOP, bisa.

7:03Bisa dia.

7:05Multi-purpose.

7:07Karena sejarahnya emang harus flexible.

7:12Emang harus flexible.

7:14Jadi kalau dipetakan ke mata kuliah itu agak sulit.

7:19Karena functional programming belum diajarkan sampai sejauh ini,

7:23selama ini yang saya tahu belum diajarkan di kampus.

7:25Kampus itu baru sampai di prosedural sama OOP.

7:31Cuma orang kuliah itu sebenarnya luas banget nggak sih?

7:34Maksud saya kan dunia IT gitu atau computer science itu kan banyak banget.

7:40Orang web buat doang aja bisa macem-macem banget.

7:43Apalagi computer science kan.

7:45Atau ini yang lebih spicy.

7:49Nggak spicy sih cuma perspektif lain.

7:53Dikasih sejarahnya sama kayak prinsip-prinsip umumnya.

7:57Kayak satu semester lah gitu.

7:59Nggak usah coding dulu.

8:01Tapi ya mungkin kayak binary, prinsip-prinsipnya.

8:06Jadi kayak control flow, kondisional atau apa.

8:09Terus habis itu penjurusan deh.

8:12Jadi ada jurusan apa ya.

8:14Pengelompokan entah apalah nggak tahu.

8:16Ada yang mau larinya ke JavaScript, TypeScript.

8:19Ya udah JavaScript duluan.

8:21Pengelompokan jurusan satunya nih.

8:23Ya kayak mulai dari Titan, C++.

8:27Terus apalah infra atau networking.

8:30Nggak ada yang mau.

8:32Masih berhubungan juga nanti ke data store.

8:36Kalau misalnya dia masih pakai relasional, itu kan strict.

8:41Type nya itu kan harus strict ya.

8:43Kalau pakai relasional kan.

8:45Kalau pakai yang object relasional, ORM, beda lagi kan.

8:50Yang dipopulerkan MongoDB dan Firebase.

8:56Mungkin ya kalau uno SQL, ya itu bisa dipelajari sambil jalan sih.

9:03Maksudnya kayaknya lebih sensible kalau bahasa pengantar awalnya itu Python.

9:10Karena kan awalnya kita dijarin shadow code kan.

9:13Dari shadow code ke Python kan udah deket kan.

9:16Dekat sekali kan. Nggak juga.

9:18Dan Python lebih jati diri.

9:22Dari aliran C++.

9:26Beda.

9:28Kan kalau ngomongin bahasa pemograma itu sama kayak ngomongin agama.

9:32Nggak abis-abis.

9:34Di kiri dan kanan.

9:36Tujuan nya satu dong.

9:38Tujuan nya sama padahal ya.

9:40Cuman udah sama agama ya.

9:42Bisa lebih banyak sekaligus.

9:46Ya dibandingkan dia pasti kayaknya Python lebih punya jati diri.

9:49Dia udah OP gitu kan.

9:51Nggak setengah-setengah gitu.

9:54Dan bahasanya juga bahasa Inggris.

9:56Maksudnya secara sintaksnya.

9:59Tapi ya balik lagi tergantung.

10:01Menurut saya sih selama olimpiade komputer.

10:07Masih menggunakan paskal C++.

10:11Itu di kampus nggak bakal berhenti melakukan itu.

10:15Karena dari SMP SMA itu udah olimpiade komputernya kan bahasanya itu kan.

10:23Iya.

10:25Jadi yang inggris dibunuhnya sebenarnya sebelum itu.

10:28Iya sebelum itu.

10:30Cuma kelebihan/kekurangan nggak kuliah yang berhubungan sama IT.

10:36Bisa langsung.

10:38Nggak bisa C++ dan Python ya.

10:40Udah nulis JavaScript sama TypeScript.

10:43Sekarang kalau udah teranjur kerja sebagai webdev atau bikin agensi.

10:48Masa ada orang yang segitu isengnya bisa Python nggak?

10:54Cuma akhirnya sempat belajar sendiri Python sedikit.

10:59Cuma pengen tahu aja kalau suatu hari kepepet harus bisa.

11:03Bisa bakal bisa atau nggak.

11:05Jadi cuma declare variable-nya begini.

11:08Kalau bikin loop gini.

11:10Kondisional gini.

11:11Operasinya kira-kira gini.

11:12Ya udah, abis itu nggak lanjut.

11:14Cuma kalau kapan-kapan entah kenapa kepepet harus bisa, ya udahlah.

11:18Nanti dipikir lagi.

11:20Oke, mantap. Terima kasih Audi.

11:22Gara-gara Audi kita jadi ngelantur ke mana-mana.

11:25Anyway malam hari ini kita membahas tentang salah satu topik fundamental ya.

11:30Basic, sangat dasar sekali.

11:32Nah ini juga harus tahu ya.

11:34Orang tulis ya jahil nggak ya ini?

11:36Nggak, saya dulu nggak dapet.

11:38Nggak.

11:40Dulu nggak sampai bikin server ya.

11:43Kalau bootcamp apa ya?

11:46Misalnya kayak ya web dev jelas.

11:49Terus dev ops ya harus ngerti kan nih.

11:53Betul.

11:55Minimal harus tahu jalur, alur dari request.

12:00Ketika si user ketik domain itu si server-nya ngapain?

12:06Kan standarnya kan request terus diproses jadi response kan baliknya.

12:12Itu minimal gitu.

12:14Tapi kayaknya dulu waktu pelajar pomograman web di kampus nggak diajarin HTTP.

12:19Iya, HTTP protocol secara protocol diajarin ya.

12:22HTTP, FTP, SMTP.

12:26Itu diajarin.

12:28Yang 7 oc layer kan?

12:30Nah itu diajarin.

12:32Tapi cara bikinnya, cara gimana caranya apa ya?

12:35Gimana caranya kita melempar request dan melempar balik response itu nggak sampai sedetil itu sih.

12:44Jadi hanya cara pakai saja.

12:46Pakai telnet lah atau tools semacamnya.

12:50Dulu sih kalau di kampus diajarin itu.

12:53Nggak tahu nih, temen-temen yang kuliah mungkin bisa kasih pendapat.

12:58Kuliah jaman now sudah ada topik tentang HTTP, lebih detail atau hanya kulitnya saja?

13:05HTTP kepanjangannya apa ya?

13:08Hypertext Transfer Protocol.

13:12Lulus interview, oh nggak ya?

13:16Emang ada yang nanya gitu ya?

13:20Sebutkan kepanjangan HTTP, pakai pilihan lagi.

13:23A, B, C, D.

13:25Hypertext sih gampang ditebak, transfer-nya doang sih yang agak sulit.

13:29Kalau P-nya protocol, ok lah itu juga bisa ditebak.

13:33Ali, siapa tahu ada...

13:35Ada yang belum tahu.

13:37Nge-freeze.

13:39Atau TP-nya gagal.

13:41Atau TP-nya response-nya gagal.

13:44Oke, aman.

13:46Acek.

13:48Kalau sekarang kan itunya pakai P.

13:51Kalau nge-chat kan P.

13:54Ping.

13:56Itu P itu artinya apa ya?

13:58Bisa pa, bisa ping, bisa punten.

14:01Masa sih?

14:03Bukan poi atau hoi gitu, poi.

14:09Ini gara-gara BBM dulu, Blackberry Messenger.

14:13Biasanya nge-ping-ping kan.

14:15Dulu kalau BBM kan sejarahnya beneran ada feature ping kan ya?

14:19Iya, kalau WhatsApp nggak ada, jangan ditambah-tambah fiturnya.

14:24Jadi manual.

14:26Oke, anyway.

14:28Jadi kita malam hari ini akan membahas agak sedikit lebih detail tentang HTTP.

14:34Dan tentunya HTTPS ya.

14:36Dan kenapa penting, HTTPS itu penting.

14:39Dan kenapa HTTPS mulai ditinggalkan, dalam dana kutip.

14:43Kemudian kita lihat juga sejarahnya.

14:45Jadi kita mulai dari sejarahnya. Tadi kita udah bahas tentang kepanjangannya.

14:50Hypertext Transfer Protocol.

14:52Kita mesti sign in dulu deh, itu sign in medium.

14:54Coba deh, scroll ke bawah.

14:56Kenapa? Harus sign up?

14:58Enggak? Oh iya bener.

15:01Oh tidak, berarti kita bukanya pakai incognito.

15:06Sedikit cerita dulu, kenapa kita bisa bahas HTTP?

15:11Mas Riza bingung.

15:15Lo, kok website yang dibikinnya nggak bisa pakai HTTP ya?

15:20Harus HTTPS.

15:22Ada mau bikin demo aplikasi, demo in, deploy.

15:28Tapi juga diplonya pakai SSL Certificate kan.

15:33Jadi sebelum pakai SSL kan pakai HTTP dulu.

15:37Begitu dibuka di browser yang modern, itu pada redirect semua ke HTTPS.

15:42Gimana cara disable-nya juga udah dicobain disable.

15:46Pakai flag apa, flag apa, nggak ngaruh.

15:49Ternyata domain yang saya gunakan itu .dev.

15:54Dan kalau .dev katanya itu otomatis redirect.

15:58Padahal di Nginx saya nggak ada itu.

16:00Enforce.

16:02Enforce. Gitu, makanya langsung yuk kita bahas HTTP ini penting nih kayaknya.

16:09Ya pas balik pas ceritanya udah selesai.

16:12Oh iya dong. Kan udah tahu ceritanya selama weekend kemarin.

16:18Ini ada nih, saya lupa entah saya yang bolos atau nggak ada di kampus.

16:23Pantesan belum lulus, kamu kuliah dimana?

16:27Nggak ada belajar HTTP ya. Oh kita harus nanyain ini ya, Pak Dika kali ya.

16:33Pak Dika, kalau beliau mungkin ngajarin, nggak mungkin resminya nggak diajarin.

16:39Tapi dia bikin video sendiri-sendirian.

16:43Jadi menurutnya Pak Dika.

16:45Betul, ada materi atau ada bahan ajar nggak buat HTTP.

16:49Kalau nggak ada berarti ya.

16:51Kalau Pak Dika saya yakin pasti ngajarin sih.

16:54Cuman itu ada masuk ke kurikulum atau nggaknya yang pengen kita tahu ya.

17:00Kurikulum default.

17:02Gitu.

17:04Nah, jadi HTTP ini lahir di tahun?

17:10Nggak tahu kan.

17:12Ini pertanyaan interview nih. 1991 ya.

17:24Ya pas ada internet, ada website, harus ada protokolnya kan.

17:30Dan itu saat itu masih pakai TCP ya saat itu ya.

17:35Kalau sekarang apa?

17:37Pokoknya masih one line doang.

17:39Tapi kalau HTTP 3 beda lagi.

17:42Oh UDP ya dia udah UDP ya?

17:44Iya.

17:46Koneksi pertamanya.

17:48Bedanya TCP sama UDP?

17:51Nanti kita bahas.

17:53Nanti kita bahas, oke.

17:55Jadi tadi udah tahu kepanjangannya HTTP adalah Hypertext Transfer Protocol dikembangkan oleh web developer ini.

18:04Team Benar Steam, the real web developer.

18:07Jadi dia yang bikin web.

18:09Satu orang loh itu bukan satu team.

18:11Bukan 3 orang ini, satu orang ya.

18:13Namanya sih 3.

18:15Tapi ini adalah satu sosok orang.

18:17Dikembangkan di Labs namanya CERN.

18:22Terus ini sekitar 8-9 sampai 9-1.

18:27Mungkin teman-teman yang nonton belum pada lahir.

18:33Terus HTTP adalah, oh iya, Eka udah?

18:39Kita mah udah.

18:41Kita mah udah.

18:43Kita mah tua.

18:45Kok kita?

18:47HTTP Functions Request Response Protocol in the Client Server Computing Model.

18:54Jadi kliennya adalah browser.

18:57Servernya adalah web server.

19:00Web server.

19:02Tapi jaman itu belum ada browser ya.

19:04Jaman itu belum ada browser, jadi kita request-nya pakai telnet.

19:10Oh pakai telnet.

19:12Belum ada churl juga.

19:14Belum ada churl.

19:16Jadi pakai telnet.

19:18SSR.

19:20SSR protocol juga.

19:22Sejenis telnet lah jaman itu entah apa.

19:25Iya. Protokol telnet itu adalah protokol klien untuk segala jenis protokol.

19:33Klien untuk segala jenis protokol.

19:35Dia interface doang.

19:37Jadi mau kirim apa gitu.

19:39Jadi kayak, kalau sekarang itu analoginya kayak apa ya?

19:43Kayak Postman.

19:45Tapi bukan hanya buat HTTP.

19:47Bisa buat SSH.

19:49Bisa buat FTP.

19:51Bisa buat SMTP.

19:53Pokoknya semua protokol yang ada di jaringan.

19:57Apapun yang bisa dikirim dia cuma nyampein ya.

19:59Iya dia pakai port.

20:01Servernya mau terima atau enggak?

20:03Lebih tepatnya dia IO interface.

20:07IO interface, ya.

20:09HTTP ini umumnya jalan di port 80 ya.

20:15Jadi kalau teman-teman misalkan medium.com.280.

20:19Yaitu adalah HTTP.

20:21Kalau HTTPS 4 ke 3 kan.

20:23Jadi nggak kelihatan di sini karena defaultnya.

20:27Kecuali kalau misalkan localhost 3000.

20:29Nah itu udah buatan sendiri kan.

20:31Itu bebas ya dari kita.

20:33Di atas 1000 sekian saya lupa.

20:37Di bawah 1000 itu sudah diambil.

20:41Sudah punya OS.

20:43Oh nggak bisa dipakai ya?

20:45Gak bisa.

20:47Kalau kalau dipakai berantem.

20:49Maksudnya kadang bakal ada yang pakai.

20:51Kalau dipakai nanti ada aplikasi yang bakal gagal.

20:55Yes.

20:57Nah kita mulai dari HTTP 0.9.

21:01One line protocol.

21:03Jadi hanya ada satu baris.

21:05Nah ini contoh Telnet tadi kita udah bahas ya.

21:07Jadi Telnet ini adalah command line.

21:11Yang bisa kita panggil seperti ini.

21:13Kemudian kita kasih domainnya atau IP address-nya.

21:17Alamat apapun ya. Mau domain, IP address.

21:19Bisa IP, bisa TLD.

21:21Bisa localhost juga.

21:23Jaman motto dibikin ini kayaknya belum ada domain juga deh.

21:27Belum ada DNS kalau nggak salah.

21:29Belum ada.

21:31Jadi masih pakai IP address.

21:33Pake IP address, kemudian portnya.

21:35Nah berhubungan HTTP adalah port 80.

21:37Ya kita pakai port 80 di sini.

21:39Terus berhasil connect.

21:41Hand shaking istilahnya.

21:43Salam kenal gitu ya. Salaman.

21:45Terus abis itu kita bisa kirim request.

21:47Requestnya jenisnya apa?

21:49Ada get, post, put, update, delete?

21:51Nggak.

21:53Baru get doang tuh.

21:55Kalau ini ya. Karena 0.9.

21:57Terus kita mau request apanya?

22:01Mau request halaman apa?

22:05Kita minta page ya.

22:07Kalau dulu kan istilahnya dokumen ya.

22:09Kita mau request dokumen apa?

22:11Itu. Udah tuh abis itu dari si ininya di response lah oleh si server dengan tech HTML.

22:23Udah abis itu harus login ya.

22:27Mediumnya.

22:29Punya akun medium.

22:31Ada sih.

22:33Nah pindah, pindah window dulu.

22:35Pindah window loginnya.

22:37Sambil lihat ini.

22:39Apa ya Samy?

22:41Sambil lihat contoh dokumennya aja apa?

22:43Boleh.

22:45Kan apapun yang di web itu harus berdasarkan standar ya.

22:49Spesifikasi.

22:51Sambil share screen.

22:53Udah share belum?

22:59Sudah.

23:01Nah ini yang HTTP 1.

23:03Nah.

23:05Ya kalau baca sebenarnya bosan sih.

23:07Cuma dokumen yang jadi standar kira-kira bentuknya gini.

23:13Jadi kalau temen-temen pengen lihat.

23:15Sampai sekarang semua udah masih terdokumentasi rapih di website-nya.

23:19Tadi IETF ini kan disebut juga ya di artikel tadi.

23:25Abstratnya, tujuannya, terminologi.

23:31Ya wah ini spesifikasinya begini ya.

23:37Apa itu connection?

23:39Jadi kalau, biar nggak rancu kan.

23:41Message itu apa.

23:43Bahkan request-response yang menarik aja sih.

23:47Sampai sekarang banget kan kita juga masih pakai request-response ya.

23:51Di web API itu di browser ada request object, ada response object.

23:57Dan sekarang udah extended.

23:59Sekarang kan ada worker ya.

24:01Worker juga bisa ada kegiatan lah, ada manipulasi.

24:07Misalnya kalau pakai service worker nih kita bisa manipulasi response ya.

24:11Misalnya aslinya kan aslinya lagi offline.

24:15Response-nya 404.

24:17Bisa kita manipulasi.

24:19Jadi 200 kita balikin jenis data yang kita setting sendiri.

24:23Tapi itu semua sebenarnya kan berdasarkan prinsip request dan response object dari suatu HTTP request kan.

24:33Sama HTTP response.

24:35Ternyata ini udah dari tahun 90-an.

24:39Resource, entity, blablabla.

24:41Udah? Udah login?

24:45Login menggunakan Twitter? Gak.

24:49Ada yang bisa login.

24:51Satu-satunya akan pakai Twitter soalnya.

24:53Tapi tidak berhasil.

24:55Bentar, coba dulu.

24:59Oh, atau buka yang ini aja nih.

25:01Buka yang kedua, buka yang kedua.

25:03Yang ini.

25:05Wait, gue stop sharing.

25:07Yang dimana ya?

25:09Online protocol. Tadi kita udah bahas telnet.

25:13Terus kita get.

25:15Hanya ada satu dulu ya.

25:17Hanya bisa ngambil dokumen.

25:19Sebutannya dokumen ya halaman itu.

25:21Halaman HTML.

25:23Terus ini adalah response-nya.

25:25Response-nya dalam bentuk HTML.

25:27Single line.

25:29Ini kan port 80.

25:31Kalau dia nanti...

25:33Contohnya teman-teman mau...

25:35Connect ke SMTP.

25:37Nah itu nanti 4.

25:39SMTP berapa?

25:41443.

25:43443 bukannya SSL?

25:45Bukannya salah.

25:47Bukan.

25:49Bukannya SSL.

25:51Sorry, sebelum gue salah ngomong.

25:53Cari dulu, cari dulu.

25:55SMTP port 25 atau 587.

26:05Ah, 25.

26:07Yang benar itu.

26:09Kalau yang gue inget 143 itu IMAP.

26:11IMAP.

26:13Iya, IMAP juga.

26:15Pop 3 110 995.

26:17Kenapa saya sebut ini?

26:19Intinya pakai Telnet.

26:21Kalau kita connect ke SMTP.

26:23Nah kita gunakan portnya 25.

26:25Nanti muncul itu pesannya.

26:27Hello, eh hello.

26:31Kaya gitu.

26:33ACK, something ya.

26:35Nah ini.

26:37Zoom in dikit deh.

26:39Nah, mantap.

26:43From this humble beginnings

26:45in 1991,

26:47HTTP took a life on its own

26:49and evolved rapidly over coming years.

26:51Let's quickly recap features of

26:53HTTP 0.9.

26:55Client server

26:57Request Response Protocol.

26:59ASCII protocol

27:01running over TCP/IP.

27:03Designed to transfer

27:05hypertext document.

27:07Dokumen HTML.

27:09Sama ini tadi simpel banget kan.

27:11Comma get.

27:13Terus ga ada response error, ga ada header.

27:15Headernya aja ga ada ya.

27:17Ya udah dikasih aja langsung.

27:19Dikasih aja HTML.

27:21Begitu sudah terima response, langsung close.

27:23Ga ada keep alive.

27:25Ga ada web socket, ga ada macem-macem.

27:27Jadi, sekali kirim,

27:29selesai, bye bye.

27:31Nanti kalau mau minta lagi, request lagi.

27:33Buka lagi.

27:35Kemudian masuk ke 1.0.

27:37Ini di tahun 91-95.

27:39Ini ya, ya digunakannya ya.

27:41Ini adalah

27:43Cooperation of HTML.

27:45Ya, sudah mulai ada browser.

27:47HTML specification.

27:51A new breed of software

27:53known as web browser.

27:55Jadi web browser lahir

27:57itu di tahun sekitar 91-95.

27:59The emergence and quick growth

28:01of the consumer-oriented

28:03public internet infrastructure.

28:05Jadi, kalau dulu internet itu

28:07digunakan di kalangan terbatas.

28:09Akademis ya biasanya.

28:11Apa di kampus-kampus, militer.

28:13Militer, yang terutama militer ya.

28:15Pemerintahan.

28:17Pemerintahan negara sana.

28:19Mungkin, kayaknya kalau di kita belum ada deh.

28:21Kita belum ada.

28:23Amerika, Inggris.

28:25Nah, teman-teman, mungkin bisa share juga

28:27pengalaman berinternet pertama itu

28:29kapan dan melakukan apa

28:31di internet.

28:33Kalau saya dulu email.

28:35Gak tau bunyi modem.

28:37Gak tau bunyi modem.

28:39Telekom net instant ya.

28:41Eh, nyebutin Merk ya.

28:43Eh Merk.

28:45Sebenernya dari tadi kepikiran itu

28:47cuma nahan diri sih jinggulnya keci banget.

28:49Sampai sekarang masih afal.

28:5108.0.9.

28:53Cukup, cukup, cukup.

28:55Bip.

28:57Dan ketika kita menggunakan internet

28:59tiba-tiba, Mak, kita angkat telepon.

29:01Ini suara apa, Wai?

29:03Tiba-tiba tadi hand telponnya

29:05langsung membengkak.

29:07Membengkak, iya.

29:09Padahal buat chatting doang ya.

29:11Anyway, jadi

29:13di tahun 91-95

29:15mulai muncul satu software baru

29:17yang namanya web browser

29:19yang bisa mengkonsumsi

29:21HTTP. Kita bisa request dari

29:23HTTP, gak hanya dari Telnet lagi.

29:25Ada klien baru

29:27namanya web browser.

29:29Web browser inilah yang bertugas

29:31untuk

29:33mentranslasi

29:35HTML

29:37menjadi dokumen yang bisa kita baca

29:39oleh manusia, gitu ya. Kalo sebelumnya

29:41agak susah ya

29:43ngeliat tag-tag gitu ya.

29:45Kan user kirim response

29:47melalui web browser.

29:49Jadi kita tinggal ngetik

29:51URL atau IP yang mau

29:53dituju, enter. Nah kan

29:55si browser-nya menyampaikan

29:57HTTP request itu tadi. Terus

29:59terima response berupa misalnya

30:01dokumen HTML.

30:03Dia merender HTTP response

30:05jadi UI.

30:07Apa? Dirender di DOM.

30:09Iya.

30:11Nah, di HTTP 1

30:13sekarang sudah mulai

30:15nambah. Kalo tadi kan

30:17hanya ada satu baris. Hanya ada satu baris

30:19request dan response.

30:21Eh, gak ya. Request. Hanya ada satu baris

30:23request. Kalo sekarang

30:25request-nya ada banyak nih. Yang pertama adalah

30:27get.

30:29Kemudian ini adalah dokumen yang kita

30:31inginkan. Ini ada

30:33versi dari HTTP-nya.

30:35Yang masih dipakai sampai sekarang. Sekarang 1.1

30:37yang default ya.

30:39Kemudian ada user agent-nya.

30:41Dan kemudian

30:45iya.

30:47Kemudian dia, kita harus

30:49mendefinisikan kita ingin dokumen

30:51apa yang mau kita terima.

30:53Atau yang mau kita

30:55kirim. Sorry, yang mau kita kirim.

30:57Eh, kalo get

30:59yang kita terima dong.

31:01Ya, terima. Yang kita terima.

31:03Ya, accept. Misalkan

31:05saya mau dokumennya dalam bentuk HTML

31:07atau text ya. Dalam hal ini ya.

31:09TXT berarti. Atau

31:11saya mau semua gitu ya. Mau apapun

31:13tipenya terserah. Bebas.

31:15Ya, atau mau tipenya JSON,

31:17XML, dll. Itu urusan kita.

31:19Kemudian dibalas

31:21oleh server dengan

31:23versi HTTP-nya.

31:25Status code-nya.

31:27Kemudian ini

31:29short.

31:31Status code. Ya, status code-nya.

31:33Status code dengan bahasa

31:35ya, oke. Terus

31:37not found

31:39dan lain-lain ya. Content type-nya

31:41yang harusnya

31:43sesuai sama ini. Karena ini bisa

31:45terima semua. Dia terima apapun.

31:47Ukuran

31:49kontennya.

31:51Atau ukuran dokumennya.

31:53Kemudian

31:55expire ini untuk

31:57caching ya.

31:59Caching.

32:01Lalu, terakhir

32:03dokumennya dimodifikasi

32:05kapan? Dan ada

32:07server-nya di sini.

32:09Boleh ada, boleh enggak. Kan ini

32:11metadata information kan.

32:13Kalau di

32:15OAS itu

32:17sebaiknya jangan ada informasi apapun

32:19di sini yang berhubungan dengan

32:21web server ya.

32:23Ya.

32:25Demi keamanan.

32:27Demi keamanan. Jadi teman-teman boleh pakai ini

32:29tapi di aneh-anehin aja. Misalkan

32:31Tomcat gitu. Padahal pakainya

32:33WordPress gitu kan.

32:35Biar bingung. Silahkan.

32:37Silahkan

32:39berkreasi. Nah, kemudian setelah itu

32:41baru respons-nya di sini.

32:43Berhubungi ini text, ya dia plain text aja ya.

32:45Kalau HTML, berarti dia isinya HTML.

32:47Kalau XML, dia XML. Kalau JSON, dia JSON.

32:49Kemudian udah. Balik lagi.

32:51Begitu selesai dikirimkan,

32:53connection-nya mati.

32:55Gitu. Nah, itu TTP

32:591.

33:01In addition to media type negotiation

33:03RFC, RFC apa?

33:05Request for...

33:07Itu tadi yang kita lihat tadi. Apa?

33:09Connection.

33:11For comment.

33:13Comment kayaknya.

33:15Iya.

33:17Itu yang untuk bikin standard RFC.

33:19Oh iya. RFC.

33:21Jadi ini udah mulai ada

33:37kompleksitas. Udah mulai ada fitur-fitur

33:39yang aneh-aneh ya.

33:41Seperti encoding. Kita bisa ngirimin

33:43data, file, video, dan lain-lain.

33:45Sekarang ya.

33:47Character set support itu

33:49Compression ya.

33:51Compression, iya compression.

33:53Mau pakai gezit,

33:55broadly, dan lain-lain.

33:57Multi part ini tadi upload.

33:59Upload file, autoritasi,

34:01caching, proxy behavior,

34:03dan lain-lain. Ini udah

34:051.0 ini udah lumayan modern ya.

34:07Yang sekarang digunakan.

34:09Bisa dilihat tuh contoh di dokumennya.

34:11Kalau mau liat

34:13di private chat.

34:15Contoh contohnya.

34:17RFC tadi ya?

34:19Yang bawah.

34:21Ini ya?

34:2371.

34:25Iya.

34:27Itu yang pertama kali.

34:29Jadi kalau misalnya mungkin

34:31kalau kita yang belum pelajarin dari sini kan

34:33suka bingungan. Kayaknya tiba-tiba banyak banget.

34:35Ada apa aja sih?

34:37Dari mana, siapa yang nentuin,

34:39terus kadang kita

34:41salah kopas atau gimana tuh dari

34:43misalnya

34:45accept, ketuker,

34:47sama content encoding.

34:49Terus, ini

34:51kenapa, kapan pakai yang

34:53oh, allow,

34:55accept, kapan pakai

34:57masing-masing itu. Nah,

34:59ini definisinya semua

35:01ada di sini.

35:03Atau siapa tau yang telah temen-temen

35:05ada yang mau bikin

35:07browser.

35:09Terus bikin

35:11protokol sendiri.

35:13Bukan, ini

35:15ini dasarnya semua.

35:17Iya.

35:29Bayangkan ya,

35:31developer yang bikin

35:33ini,

35:35bukan, apa, kerjaannya

35:37itu bukan cuma encoding selesai,

35:39tapi harus bikin ini, atau bikin ini dulu

35:41baru dia encoding-nya.

35:43Dokumentasi sebanyak ini ya.

35:45Kalau ininya belum fix,

35:49nanti dia encoding, nanti dia encoding, ternyata

35:51maksudnya bukan itu. Terus pada

35:53marah-marah, kalau bukan ini, itu sama.

35:55Yang bikin si, ini ya,

35:57Omban Leslie juga ya.

35:59Itu ada author dari atas.

36:01Iya, ini ya. Dan teman-temannya, Paul ya.

36:03Timnya beliau.

36:05Jadi, encoding itu bukan cuma

36:09bikin kode.

36:11Dokumentasi juga.

36:13Gampang. Yang susah ini.

36:15Bikin kode, ya,

36:17baru sepersekian persen

36:19dari pekerjaan kita.

36:21Dokumentasi sama, apa,

36:23nentuin sih, bikin

36:25keputusan. Jadi kayak seberapa

36:27scope-nya seberapa, masalah

36:29apa yang mau dipecahin, terus kita mau

36:31kenapa buat mencapai

36:33tujuan atau masalah yang

36:35kita pecahin.

36:37Kalau Tim Bernersley, ya udah

36:39terbiasa.

36:41Terbiasa melakukan itu. Nah,

36:43ini ada pertanyaan

36:45dari Riza Minudin.

36:47"Bisa kirim

36:49dalam bentuk JSON nggak?" Bisa.

36:51Ini kan kita bisa kirim,

36:53kita mau ngirim data.

36:55Kalau ngirim data, pakai pos ya, bukan pakai get ya.

36:57Kalau get itu untuk minta

36:59request, minta data.

37:01Kalau kirim pakai JSON, bisa.

37:05Sama aja.

37:07Jadi,

37:09jawabannya bisa sekali.

37:13Karena itu yang kita lakukan

37:15sekarang, kalau bikin

37:17application JSON.

37:19Iya, nerima JSON,

37:21ngirimin juga JSON, ngirimin

37:23dalam bentuk form gitu kan, bentuknya JSON kan.

37:25Kita kirimin bodinya.

37:27Oke, kita masuk ke yang

37:29kita gunakan sekarang adalah HTTP versi

37:311, yang akan datang kita gunakan

37:33versi 2 ya. Loncatnya lumayan tinggi ya.

37:35Dari 0,9, 1.0,

37:371.1, terus nanti loncat ke 2 ya.

37:39Itu ada ceritanya nggak ya?

37:41Bukannya sudah di 2 sekarang ya?

37:43Oh, sudah di 2 ya? Sekarang 2?

37:45Sekarang 2 ya?

37:47Iya, kita akan loncat ke 3 soon.

37:49Tiga tuh malah

37:51sebetulnya, diam-diam.

37:53Browser tuh udah support,

37:55nggak, gue sudah pernah implementasi

37:57aja, pakai quick.

37:59Anyway, nanti kita lanjut.

38:01Oke, seru nih.

38:03Oke, mantap.

38:05Mana dia? Nah, ini ya. Kita bisa

38:07lihat di headers-nya di sini ya.

38:09Ada nggak, HTTP versi

38:11ininya? Ini sudah, ini bahkan

38:13sudah, ini,

38:15ini udah HTTP 3 ini.

38:17Udah 3 ya? Udah itu H3,

38:19dia terus, dia terus itu H3.

38:21Itu H3.

38:23H3 itu sudah, sudah

38:25HTTP 3.

38:27Ya, buka ini aja deh,

38:29rizafahmi.com.

38:31Oh iya, boleh deh.

38:33Ini masih HTTP 2?

38:35Iya.

38:37Mana dia?

38:39Network.

38:41Refresh lagi.

38:43Refresh. Fail.

38:45No internet?

38:47Karena ada ininya kali,

38:49ada settingannya untuk

38:51pulang.

38:53Abis cek.

38:55Abis kemaren tuh, wassup.

38:57H3 juga.

38:59Iya, berarti di belakang

39:01clock-faire ini ya.

39:03Di belakang clock-faire.

39:05Iya kan ada cewek soalnya.

39:07Yes, ketahuan kan?

39:09Buka EKA 2II.

39:11Coba juga.

39:13Oke, oke, oke.

39:15Saya percaya, saya percaya.

39:17Sekarang sudah HTTP 2

39:19dan menuju 3 ya.

39:21Berarti

39:23saya ketinggalan.

39:25Masih HTTP 1.1.

39:27Oke, ini,

39:29HTTP 1.1 ini

39:31lifecycle.

39:33Masa hidupnya lumayan lama ya.

39:35Mana dia?

39:49Into standard world release

39:51RFC 2616.

39:53Jadi yang

39:55HTTP 1 itu

39:57di-release

39:59HTTP 1.1

40:01di-release di tahun 97.

40:03Kemudian ada perubahan juga

40:05tapi nggak naik ya versinya ya.

40:07Harusnya naik ya.

40:09Minor ya.

40:11Nah, sekarang

40:13udah semakin tambah panjang.

40:15Jadi ini masih sama.

40:17Ini hidup yang kita punya kan ya?

40:19Yang kita kenal sekarang ya.

40:21Ada house-nya, ada user agent-nya,

40:23ada menerima apa saja.

40:25Termasuk tadi

40:27kalau mau JSON kita bisa juga.

40:29Ada encoding-nya, Gzip

40:31dan lain-lain. Ada

40:33apa tadi?

40:35UTF dan lain-lain tuh.

40:37Bahasa ya.

40:39Charset, charset.

40:41Ini dia, ISO. Ada cookies.

40:45Dan kemudian respons-nya juga bertambah.

40:47Kita pernah bahas cookies.

40:49Kita sudah pernah bahas cookies.

40:51Apa yang belum kita bahas coba?

40:53Kita belum bahas URL.

40:55Nah, teman-teman punya ide apa yang

40:57kita belum bahas bisa kirim ke

40:59bit.ly/ngobrolingweb.

41:03Nah, ini bisa

41:05teman-teman bisa coba.

41:07Teman-teman bisa coba HTTP,

41:09request HTTP itu kayak gini ya.

41:11Coba.

41:13Oke. Terus respons-nya juga

41:15masih mirip-mirip dengan

41:17request ya. Jadi ada versi,

41:19ada status, ada

41:21server-nya apa.

41:23Keep Alive. Nah, Keep Alive ini yang tadi

41:25belum support, sekarang udah bisa.

41:27Keep Alive itu berarti

41:29gimana tuh?

41:31Keep Alive itu connection

41:33jadi...

41:35Enggak putus ya setelah menerima.

41:37Jadi untuk koneksi

41:39antar dari si

41:41browser ke server,

41:43dia gak di-close.

41:45Gak di-close. Dia akan

41:47mendengarkan terus.

41:49Karena untuk...

41:51Kan kalau kita buka misalnya

41:53gini, web server itu punya thread.

41:55Punya pull thread.

41:57Pull of threads ya. Kalo engine

41:59X itu kan ada setting-nya

42:01itu ada children.

42:03Dia pake thread dan satu thread itu bisa

42:07menghandle berapa koneksi.

42:09Nah, kalau misalnya diputus,

42:11dia berarti kan harus booting ulang

42:13koneksinya.

42:15Kan ada panjang lagi.

42:17Ada session-nya lagi.

42:19Jadi kalau misalnya pake Keep Alive itu

42:21akan ada handshake-nya.

42:23Kalau Keep Alive itu, dia akan

42:25dengerin dulu. Sampai

42:27tergantung si web server mau kasih berapa lama.

42:29Kalau dia gak dengerin lagi,

42:31dia di-close, putus.

42:33Hmm, sampai berapa lama

42:35sampai ininya...

42:37Tergantung si web server punya...

42:39Ada time out-nya juga ya.

42:41Ada time out-nya.

42:43Nah, Keep Alive

42:45ini adalah cikal bakal dari

42:47pertanyaan dari

42:49Riza lagi.

42:51Websocket.

42:53Jadi versi

42:55tradisionalnya

42:57dari Websocket adalah Keep Alive ini.

42:59Yang sebelumnya kan

43:01request, response, selesai.

43:03Request, response, selesai.

43:05Terus ternyata ada kebutuhan untuk

43:07wah, saya butuh ini nih.

43:09Chat app misalkan. Keep Alive.

43:11Terus Keep Alive udah gak

43:13bisa apa ya, kurang

43:15flexible, akhirnya muncul

43:17Websocket. Websocket itu

43:19HTTP juga,

43:21tapi dia tetap, jadi kayak dia bikin

43:23jalur sendiri yang tidak akan

43:25tertutup. Akan terbuka

43:27terus sampai kita yang tutup.

43:29Dan semacam event-base ya?

43:31Betul. Apa?

43:33Bisa terima event, jadi

43:35kayak semacam event listener, tapi

43:37client ke server.

43:39Kita belum pernah bahas ya?

43:41Kita belum pernah bahas tentang

43:43Websocket. Ide yang bagus.

43:45Terima kasih ide-nya.

43:47Langsung kita tulis.

43:49Oke, kita lanjut dulu.

43:51Di sini, udah jelas ya, yang ini

43:53udah hampir-hampir sama, terus di sini

43:55isi dokumennya. Ini

43:57apa lagi nih?

43:59Oh, dua kali dia.

44:01Satu, dua, tiga, empat, lima, enam, ini apa enam?

44:03Inform, support, that connection...

44:05Kalau satu-satu itu

44:07dia bisa request.

44:09Oh, bisa request.

44:11Multiple ini ya?

44:13Iya, iya.

44:15Kalau dua, bisa

44:17duplex ya?

44:19Multiplex.

44:21Duplex, duplex. Duplex cuma dua ya.

44:23Kalau...

44:27Kalau dia terreflex, kayu.

44:29Kalau

44:31HTTP2,

44:33dia

44:35yang paling utamanya itu adalah

44:37kirimnya satu.

44:39Misalnya,

44:41ini kan kalau HTTP1 dia,

44:43kalau dia mau minta

44:45file itu, dia harus

44:47kirim satu, balik,

44:49dan nanti habis itu minta lagi

44:51beberapa. Misalnya

44:53CSS-nya, Fabricon-nya, JS-nya,

44:55dia akan request secara waterfall.

44:57Dia akan minta terus.

44:59Kalau HTTP3,

45:01eh, sorry, HTTP2,

45:03bisa sekali

45:05kirim, bisa satu kali

45:07kirim, nanti dari server kirim

45:09push, bisa

45:11push data.

45:13Gak perlu request, perlu request

45:15tetap.

45:17Kalau HTTP2, push.

45:19Push ya, bisa push ya.

45:21Satu jalur itu,

45:23dia pakai satu jalur yang sama.

45:25Tapi harus handshake dulu, kan?

45:27Iya, kan pertama kan handshake

45:29sudah terjadi.

45:31Iya. Baru kemudian,

45:33baru dia bisa kirimin data, kan?

45:35Itu perbedaan

45:37signifikan antara 1.1 ke 2, kan?

45:39Waduh, bingung.

45:451.1 emang udah bisa itu?

45:47Udah bisa

45:49multiplex?

45:51Udah bisa push?

45:53Gimana kalau kita scroll

45:55ke bagian HTTP2?

45:57Iya, ternyata udah ada jawabannya.

45:59HTTP2 improving

46:01transport performance.

46:03Jadi, ini fokusnya ke performance.

46:05Multiplexing itu hanya ada

46:07di HTTP2.

46:09Iya, HTTP1 belum ada, kan?

46:11Yes.

46:13Yang awalnya dimulai dari

46:15one line protocol di HTTP

46:170.9. Sekarang

46:19sudah berevolusi dengan cepat

46:21menjadi generic hypermedia

46:23transport setelah

46:25beberapa dekade

46:27selanjutnya.

46:29Apa nih?

46:31Nah, bentar.

46:33Ini apa? Ada

46:35poin menarik juga sih.

46:37Apa? Hypermedia ini.

46:39Tadinya kan beda banget, kan?

46:41Yang 0.9 ya?

46:43Tadinya hanya dokumen.

46:45Dokumen, kita nggak bisa minta

46:47apapun. Nah, ini jadi generic

46:49hypermedia.

46:51Nah, ini nyambungnya ke

46:53pertanyaan tentang JSON

46:55tadi tuh. Kita jadi bisa

46:57minta jenis

46:59itu, apa? Jenis file

47:01macem-macem, kan? -Apapun.

47:03-Coba share screen dulu.

47:05Share tab.

47:07Nah, ini nih kita

47:13bisa meminta dan

47:15mengirim macem-macem

47:17teks pun, kan?

47:19Apa? Selain teks plain,

47:21itu sebenarnya banyak banget.

47:23-Ada FPF, ada

47:25DOC.

47:27-Nah, kalau yang tadi

47:29ditanyain kan, JSON ya?

47:31-Jasen pun ada

47:33JSON-LD. Ada JSON-P

47:35kalau nggak salah ya. Tapi di sini ada nggak JSON-P?

47:37Nggak ada ya? -Kayaknya itu bakal

47:39masuk ini juga deh. Karena

47:41ini kan, apa?

47:43Ini tuh kayak udah predefined.

47:45Jadi ini

47:47IANA. Apa?

47:49Ada official registry-nya namanya

47:51IANA. Official

47:53main text-nya udah ada

47:55daftar tersendiri.

47:57Ya, nanti kalau bisa ngeliat aja sendiri.

47:59Tapi yang jelas, opsinya macem-macem banget.

48:01Jadi ini kan sebenarnya

48:03essentially semua kan text-nya.

48:05Tapi kita bisa kayak

48:07menspesifikasikan

48:09text-nya tuh jenis apa.

48:11-Ya.

48:15Nah, HTTP/2 ini

48:17lumayan

48:19apa ya, orang aware

48:21dengan versi-versi HTTP ini

48:23salah satunya gara-gara

48:25gRPC. Karena

48:27gRPC menggunakan HTTP/2

48:29yang bisa datanya di-push gitu kan

48:31itu memungkinkan gara-gara si HTTP/2

48:33gitu. Sebelumnya tuh

48:35ya kita harus request dulu kan.

48:37Nggak bisa si server

48:39sekonyong-konyong mengirimkan data ke kita

48:41gitu. Jadi kita harus request

48:43baru ada tadi.

48:45Belum pernah ya.

48:47G-RPC itu versi

48:49sederhananya.

48:51G-RPC itu kan remote procedural call.

48:53Kalau G-RPC itu remote procedural call

48:55yang dibuat oleh Google.

48:57-Oh.

48:59-Nggak tahu, nggak tahu.

49:01Itu menjadi Mr. E.G.

49:03itu apa? Yang jelas ya dari

49:05tim Google sih.

49:07Jadi ya semacam

49:09inilah sejenis

49:11protokol untuk mengirimkan dan

49:13menerima data. Sama seperti

49:15GraphQL, RCPI menggunakan

49:17JSON atau XML.

49:19-Oh, geinya itu general

49:21purpose.

49:23-Ada yang bilang gitu, ada yang bilang Google.

49:25Jadi ada banyak versi belakangnya.

49:27-Versiandaan.

49:29-Versiandaan.

49:31-Ya, jadi dia ngirimin bukan ngirimin

49:33teks. Kalau misalkan RCPI

49:35kan dia ngirimin teks JSON atau

49:37XML gitu kan.

49:39Kalau G-RPC

49:41dia ngirimin binary.

49:43-Stream. Oh.

49:45-Binary, bisa di-stream juga.

49:47Jadi katanya lebih performance-nya

49:49lebih bagus.

49:51Nah, si G-RPC

49:53kalau dikonsumsi di web, dia menggunakan

49:55HTTP2 gitu.

49:57Makanya banyak orang yang ngah

50:01sekarang, wah, HTTP sekarang versi 2 ya.

50:03Kalau dulu kan nggak peduli ya, mau versi

50:05berapa gitu ya. Kecuali yang bikin web server

50:07ya, dia bisa tahu kan. Kalau kita yang menggunakan

50:09kayaknya nggak, nggak ngah kan.

50:11Ini versi berapa gitu ya.

50:13-Karena dulu cuma satu, ya udah.

50:15Kalau cuma satu kan by default.

50:17-Nggak ada pilihan. Apalagi

50:19si web browser

50:21juga, kalau udah dia dukung

50:231.1, ya udah. Yang

50:25versi lain nggak bisa. Dia backward

50:27compatible kan, harusnya ya.

50:29Kita masih bisa

50:31pakai HTTP versi 0.9

50:33nggak?

50:35-0.9, nggak tahu. Tapi kalau

50:37satu, harusnya kan

50:39kan prinsipnya sama.

50:41Cuma ada yang

50:43kayak hinder-hinder-nya aja.

50:45-Tergantung server-nya sih ya? Pasti

50:47bisa ya? -Iya. Kalau server-nya

50:49bisa ya, ya coba aja

50:51itu cari engine

50:53X atau apa C masa lalu, fork-nya.

50:55-Ini ada pertanyaan dari Rafki.

50:59-Teknikulnya bisa kecuali server-nya mau nolak.

51:01-Oh iya, benar-benar.

51:03Ini ada pertanyaan dari Rafki.

51:05HTTP 2 ditulis pakai Go kah?

51:07Kita tidak tahu. Kayaknya nggak deh.

51:09-HTP 2 itu standard, bukan

51:11ditulis pakai apa.

51:13Jadi tergantung web server-nya

51:15ditulis pakai apa.

51:17Kalau web server-nya

51:19misalnya web application server-nya

51:21Go, ya pakai Go.

51:23Kalau engine X ya pakai

51:25saya nggak tahu, engine pakai C++.

51:27-Jadi protocol

51:29ini adalah

51:31apa ya, kesepakatan

51:33bersama, dokumen kesepakatan

51:35bersama, bahwa kalau saya kirimin

51:37ini, saya dapetin ini.

51:39Implementasinya bebas.

51:41Mau pakai C, C++,

51:43Golang, mau pakai Rust, bebas.

51:45-Express, contohnya Express nih

51:47teman-teman pakai Express.

51:49Di dalam Express itu sendiri

51:51dia akan implementasi satu library yang

51:53HTTP library.

51:55Jadi

51:57HTTP library ini

51:59yang sudah ditulis oleh teman-teman itu

52:01menggunakan standard

52:03HTTP 2.

52:05Berdasarkan standard

52:07HTTP.

52:09-Betul.

52:11-Apa sih library

52:13HTTP di NPM?

52:15-HTP?

52:17-Ya, HTTP.

52:19-Di Node.js ada built-in

52:21module namanya

52:23HTTP sama HTTPS.

52:25-Beda ya HTTP server

52:27sama HTTP client ya.

52:29-Beda.

52:31-HTP client itu adalah

52:33untuk mengkonsumsi.

52:35-Mengirim dan menerima.

52:37-Mengirim dan menerima.

52:39-Mengirim dan menerima.

52:41-Oh ternyata di Node.js sudah ada

52:43built-in. -Sudah ada built-in.

52:45Kalau Express dia pakai

52:47yang lain lagi kayaknya. Eh, pakai HTTP

52:49kalau nggak salah.

52:51-Kaya dia pakai HTTP deh.

52:53-Iya, dia raper di atasnya

52:55Node.js.

52:57Kalau

52:59HTTP client

53:01itu temen-temen biasa

53:03pakai

53:05Postman, Axios,

53:07Churl ya

53:09yang tradisional.

53:11HTTP banyak ya.

53:13Itu client. Jadi kita bisa

53:15menggunakan itu. Insomnya

53:17sama seperti browser.

53:19-Kalau di PHP 5 dulu

53:21HTTP get content.

53:23-Ok.

53:25PHP juga ada PHP Churl kan?

53:27-Iya, tapi kalau

53:29call-nya nggak ada, kalau nggak di install

53:31kan bisa. -Oh iya, kalau nggak di install, nggak bisa.

53:33-Itu kan

53:35PHP extension.

53:37-Extension. Ya.

53:39-Kalau by core-nya dia

53:41HTTP get content. -Get content.

53:43Iya, iya, iya.

53:45-Nah, kayaknya kalau di dunia HP itu

53:47apa sih, ada misalnya kayak library

53:49kayak Gazelle atau semacamnya

53:51di Laravel itu kan sebenarnya meng-extend

53:53itu ya, si apa? Yang

53:55PHP. -Curl.

53:57Ya, tergantung.

53:59Kalau dia, dia

54:01di dalamnya sudah ada curl, dia pakai curl.

54:03Tergantung.

54:05Dia bisa

54:07nge-detect apa yang di install.

54:09-Nah, kalau WebRTC,

54:11WebRTC itu apa?

54:13HTTP berapa? Beda lagi ya.

54:15Itu protokol bukan sih? -Beda teknologi.

54:17Beda teknologi ya.

54:19-Tapi dia berjalan di atas

54:21HTTP 2?

54:23-Sebelum saya bisa

54:25ngomong, saya baca dulu ya.

54:27-Dia punya protokol.

54:29-Ya, kita belum pilih partisi juga sih.

54:31-Iya, betul.

54:33Itu protokol sendiri.

54:35-Protokol sendiri?

54:37Tapi menggunakan,

54:39di atas protokol HTTP, kan?

54:41-Iya. -Jelas.

54:43-Per-to-peer dia, per-to-peer.

54:49Ya, baca dulu.

54:51Saya pernah pakai,

54:53tapi nggak pernah baca mendalam,

54:55kalau nggak ditanya begini ya.

54:57-GRPC karena menggunakan Go

54:59bisa jadi.

55:01Namanya Go.

55:03Google Lang.

55:05-Go Lang juga bisa disebut

55:07Google Lang. -Iya, Google Lang, kan?

55:09-Kalau percayaannya, maksudnya

55:11kalau resminya ya nggak, namanya Go.

55:13-Tapi kenyataannya faktanya

55:15memang dikembangkan di Google, kan?

55:17Itu ya nggak salah juga.

55:19-Nah, logonya tuh,

55:21binatangnya ternyata namanya Gofer.

55:23Tau kan itu yang kaya Tupai.

55:25Tadinya kira itu Tupai

55:27atau Brang-Brang atau apa.

55:29Ternyata bukan. Itu namanya Gofer.

55:31-Basa Indonesia-nya apa?

55:33-Iya nggak penting. Ya nggak ada, nggak tahu.

55:35Apa ya? -Oh, nggak tahu ya?

55:37Binatang bahasa Indonesia-nya.

55:39Binatang apa? Itu Gofer.

55:41-Oh, tikus tanah.

55:43-Tikus tanah.

55:47-Tikus tanah itu yang kaya gimana?

55:49-Iya itu yang kaya logonya Go.

55:51-Oh, bulunya warna biru gitu.

55:55Wah, keren banget.

55:57Heimster kali itu.

55:59-Kaya lebih kayak

56:01Tupai Brang-Brang gitu loh.

56:03-Brang-Brang ya? Iya, iya, iya.

56:05-Tadinya kira yang Brang-Brang. Bukan.

56:07Brang-Brang kan Otter bahasa Inggrisnya.

56:09Ini namanya Gofer. Ya, mungkin nggak ada di Indonesia.

56:11-Saudaranya lah.

56:13-Kok jadi

56:15ngomongin logo kita ya.

56:17Ini masih

56:19berusaha jawab ya. -I'm back to WebRTC.

56:21WebRTC itu nggak pakai satu set protocol.

56:23Dia pakai beberapa sets

56:25of protocol.

56:27Karena untuk streamnya sendiri itu

56:29bukan HTTP. Karena HTTP

56:31nggak bisa stream.

56:33Setau saya. -Belum bisa stream ya.

56:35-Jadi kalau untuk streamnya

56:37dia pakai yang berbeda.

56:43-Good question. Saya

56:45perlu baca lagi.

56:47-WebRTC itu

56:49luas banget ya ternyata.

56:51Maksudnya WebRTC itu

56:53satu kategorisasi yang berisi

56:55banyak banget API.

56:57Jadi kayak bahkan yang, apa itu?

56:59Kamera, media stream.

57:01Itu aja, itu sebenarnya bagian

57:03dari WebRTC.

57:05Media device punya

57:07semua yang terkait media

57:09capture,

57:11kamera, mikrofon.

57:13Itu ternyata bagian dari

57:15WebRTC.

57:17-WebRTC tidak menggunakan

57:21HTTP, tapi dia menggunakan

57:23TCP.

57:25HTTP menggunakan TCP sih.

57:29Tapi bukan

57:31berarti WebRTC menggunakan

57:33HTTPS.

57:35-Ini ada yang ketinggalan ya pertanyaannya.

57:39Terima kasih ya

57:41Rafki tadi pertanyaan tentang WebRTC

57:43jadi kita bisa jadikan bahan

57:45topik sendiri ya.

57:47Tadi kita sempat bahas WebSocket.

57:49Jadi implementasi socket itu

57:51bukan request setiap detik, bukan.

57:53Itu

57:55tradisional. Versi modernnya

57:57adalah dia buka jalur khusus

57:59yang tidak tertutup.

58:01Jadi bisa saling kirim data

58:03antara server sama klien.

58:07Nah, kita tadi ini baru

58:09sampai ngomongin HTTP.

58:11Belum ke HTTPS.

58:13-Padahal ide ini

58:17topik ini gara-gara HTTPS ya.

58:19-Gara-gara HTTPS.

58:21Yang mana nih?

58:23Guideline HTTPS.

58:25-Yang overview aja dulu yang

58:27paling pendek tuh. HPB

58:29NGCO.

58:31Jadi intinya kan

58:33HTTPS adalah

58:35HTTPS ditambah

58:37TLS.

58:39Nah, itu sebenarnya apa?

58:41Kalau dilihat ke atasnya itu

58:43artikel tentang TLS sih sebetulnya.

58:45-TLS itu apa kepanjangannya?

58:47Nah, ini 7 layer ya.

58:51Transport layer security.

58:53Oke, terus

58:59silahkan baca sendiri.

59:01-Mengamankan, menyediakan

59:03satu layer keamanan.

59:05-Nah, untuk HTTPS sendiri

59:07ini...

59:09-Kaya lagu Halloween gitu ya.

59:11-Lagu Halloween.

59:13Kita nggak tahu.

59:15Kita nggak merayakan Halloween.

59:17Bukan, bukan OC layer.

59:21Ini transport layer security.

59:25Beda sama, sedikit beda sama

59:29OC layer ya. OC layer juga 7.

59:311, 2, 3, 4, 5, 6.

59:33Ini cuma 6.

59:35OC layer itu network ya. Transport ya.

59:39Unencrypted communication via...

59:43Gimana?

59:45-Ingat jaman dulu mau punya HTTPS itu mahal.

59:47Oh iya.

59:49Harus bayar.

59:51Kalau sekarang ada yang gratis.

59:53Gampang.

59:57Unencrypted communication via HTTP

59:59and other protocols

1:00:01great rates, number of privacy, security

1:00:03and integrity vulnerabilities.

1:00:05Such actions

1:00:07are susceptible

1:00:09to interception, manipulation, and impersonation.

1:00:11Jadi intinya adalah...

1:00:13-Saya mau di-ticket di tengah-tengah ya.

1:00:15-HTTP itu kan...

1:00:17-In the middle attack.

1:00:19-Plan text kan. Plan text tiba-tiba

1:00:21di tengah-tengah ada yang

1:00:23ngambil request kita

1:00:25atau response kita, intercept

1:00:27kemudian dia tambahin

1:00:29sesuatu

1:00:31masuklah virus ke server kita

1:00:33atau masuklah virus ke laptop kita.

1:00:35-Atau penting yang dikirim bisa di...

1:00:37-Diambil juga, di-copy bukan diambil ya.

1:00:39Password apalah...

1:00:41-Kalau situs kita

1:00:43pakai HTTPS saja

1:00:45password yang lewat itu

1:00:47di networknya.

1:00:49Yang pegang network, yang pegang

1:00:51access point atau wifi atau router

1:00:53itu bisa lihat datanya lewat pelanjang.

1:00:55-Kaya datanya, text biasa.

1:00:57-Iya, lewat pelanjang, datanya text.

1:00:59-Saya sering main-main begitu dulu.

1:01:01Saya suka, oh passwordnya ini.

1:01:03Jaman dulu

1:01:07yang kalau

1:01:09teman-teman

1:01:11pernah merasakan,

1:01:13itu ngenet

1:01:15yang banyak aja. Dulu ada

1:01:17wifi.id, yang sebut

1:01:19merek gitu. Wifi apa gitu.

1:01:21Wih, ada wifi gitu.

1:01:23Gitu-gitu dibuka

1:01:25situsnya, terus ada iklan muncul

1:01:27dan iklan itu punya dia, gitu.

1:01:29Muncul di

1:01:31di-footer. Saya kadang

1:01:33meskipun yang saya bukan pakai

1:01:35public wifi, saya pakaiin di rumah.

1:01:37Itu loh.

1:01:39Ini situs saya, kenapa

1:01:41ada iklannya?

1:01:43Saya nggak pasang iklan ini, padahal

1:01:45oh, ternyata

1:01:47ternyata

1:01:49koneksi saya di intercept

1:01:51dan dia menginjekkan JavaScriptnya

1:01:53ke HTML

1:01:55saya, dan iklannya

1:01:57muncul.

1:01:59-Iya, kalau cuma iklan.

1:02:01Kalau tracking pixel atau semacamnya

1:02:03ya udah. -Oh, ada juga tracking

1:02:05pixel banyak.

1:02:07Suka-sukanya masukin apa.

1:02:09-Jadi hati-hati, kalau

1:02:11ada wifi gratis, ya

1:02:13waspada saja, waspada.

1:02:15-Selalu gunakan

1:02:17VPN. -Iya. Jangan

1:02:19buka website yang macam-macam

1:02:21seperti bank.

1:02:23-Macam.com

1:02:25-Bukan. Banking.

1:02:27Banking e-bank.

1:02:29Buat transaksi, ada

1:02:31username, password, dan lain-lain

1:02:33di public wifi

1:02:35karena yang punya router

1:02:37bisa melihat juga. Ada kemungkinan

1:02:39dia bisa melihat, gitu ya.

1:02:41Makanya selalu siap-siap

1:02:43dia VPN.

1:02:45-Karena belum tentu

1:02:47kita, Mas. Pasti bisa melihat sih.

1:02:49-Iya, pasti.

1:02:51Antara plain text

1:02:53atau yang encrypted, kan?

1:02:55Jadi ya, tergantung

1:02:57kita gimana. -Bisa lihat

1:02:59kalau dah encrypted, gak apa-apa.

1:03:01Bentuknya kurang-kurangnya.

1:03:03-HTTPS ini

1:03:05melakukan itu. Jadi

1:03:07mereka tidak lagi

1:03:09mengirimkan data dalam bentuk

1:03:11plain text yang bisa dibaca oleh

1:03:13mata manusia, tapi

1:03:15ini dalam bentuk enkripsi, ya?

1:03:17Dia enkripsi, ya?

1:03:19-Kalau teman-teman ingin

1:03:21bereksperimen, silahkan

1:03:23pasang sendiri, misalnya routernya,

1:03:25terus bikin browser, apa,

1:03:27HTTP sendiri di rumah, lokal hot,

1:03:29liatlah data yang lewat, itu

1:03:31bisa pakai Wireshark.

1:03:33-Wireshark. -Ya, itu saya pakai

1:03:35dulu. Saya suka pakai, terus liat data

1:03:37yang lewat. Wireshark.

1:03:39-Wireshark.

1:03:41-Semua.

1:03:43-Nah, apa hubungannya

1:03:45HTTPS sama

1:03:47Coarse? Nah, ini bisa jadi topik

1:03:49sendiri juga ini. Banyak ya topik

1:03:51malam ini ya.

1:03:53Coarse, cross origin, resource.

1:03:55-Resource,

1:03:57apa, script, eh.

1:03:59-Bukan. -Case-nya apa sih?

1:04:01-Wah, gak lulus interview.

1:04:03-Cross origin

1:04:05resource sharing.

1:04:07-Resource sharing.

1:04:09-Ada hubungannya gak? -Ini kita bahas

1:04:11saat kripsasi Sandbox.

1:04:13-Oh iya, kripsasi Sandbox.

1:04:15-Oh iya, kita bahas origin.

1:04:17-Pertanyaannya ada hubungan

1:04:19dengan HTTPS?

1:04:21-Nggak.

1:04:23-Tidak secara langsung?

1:04:25-Iya, sama-sama

1:04:27berkaitan security ya.

1:04:29-Sama-sama security, tapi

1:04:31ya, hubungannya, ya, satu

1:04:33kategori ya, tapi tidak ada

1:04:35hubungan secara langsung. Karena

1:04:37HTTPS juga bisa

1:04:39gitu.

1:04:41-Rekonsider adalah bagian dari

1:04:43HTTPS.

1:04:45-HTTP ya, gak harus HTTPS.

1:04:47-Iya, HTTPS, bukan gak harus HTTPS.

1:04:49Jadi, yang dilakukan HTTPS

1:04:51adalah protect integrity of the website,

1:04:53protect the privacy and

1:04:55security of user, enable

1:04:57powerful features on the web, contohnya

1:04:59offline experience,

1:05:01user optin,

1:05:03apa lagi,

1:05:05dan lain-lain.

1:05:09Jadi, ya itu ya, sederhananya adalah

1:05:13data kita sudah tidak bisa dibaca

1:05:15oleh mata manusia,

1:05:17harus butuh apa ya,

1:05:19butuh effort lah untuk

1:05:21mendeskripsi

1:05:23bahasa Indonesia-nya, baliknya

1:05:25apa? Decrypt ya?

1:05:27-Decrypsi. -Decrypsi

1:05:29datanya supaya bisa dibaca.

1:05:31Ya, itu posibel juga, cuman

1:05:33lebih sulit lah, gitu.

1:05:35Terus gak segampang itu

1:05:37menyusupin ke respons-nya juga.

1:05:39-Iya. -Bisa jelaskan bagaimana

1:05:41cara kerjanya gak?

1:05:43-Kerjanya HTTPS? -Apa bisa begitu?

1:05:45-Iya. -Ini? Bukan?

1:05:47-Aduh, itu TLS nih. -Itu CLS nih.

1:05:49-Doh ya. -Yang itu?

1:05:51-Bagaimana data

1:05:53di Encrypt itu pakai

1:05:55certificate private key dan public key.

1:05:57-Oke.

1:05:59Gak ada ya. -Iya gak, kalau kita generate

1:06:01generate

1:06:03-GWP, bukan. -Jangan pakai

1:06:05Less Encrypt kan,

1:06:07kalau installnya sekarang udah gampang banget ya.

1:06:09-Gampang banget. -Sertboard install

1:06:11jadi. -Malah kita gak usah ngapain-ngapain,

1:06:13biasanya kalau pakai hosting modern

1:06:15kan pasti hampir pasti include lah.

1:06:17-Udah, hampir pasti include.

1:06:19-Mustahil pakai firebox hosting atau

1:06:21kompetitor apapun lah yang modern.

1:06:23-Betul. -Gitu.

1:06:25-Atau kalau manual

1:06:27pakai apa? Pakai Cloudflare

1:06:29juga sudah ada kan?

1:06:31-Atau

1:06:33coba generate

1:06:35self generate SSL.

1:06:37-SSL sendiri.

1:06:39-Bisa juga

1:06:41self generate.

1:06:43-Self generate.

1:06:45-Nanti

1:06:47itu nanti harus allow sendiri ya.

1:06:49Allow browsernya

1:06:51kayak trust gitu.

1:06:53-Paling sederhana, di localhost aja

1:06:55di localhost, bisa kok.

1:06:57Localhost dibikin HTTPS, gimana caranya.

1:06:59-Ada.

1:07:01-Jadi kita ada private key

1:07:03dan public key.

1:07:05-Tapi jadi gak belajar.

1:07:07-Hah.

1:07:09-Dari private key dan public key itu

1:07:11public key

1:07:13public key-nya ini

1:07:15akan dibaca oleh

1:07:17browser.

1:07:19-Server. -Server.

1:07:21-Yang akan dipublish ke

1:07:23akan dikirimkan, bisa di request

1:07:25oleh si

1:07:27browser itu namanya nanti

1:07:29SSL HMC.

1:07:31Jadi dia baca public key-nya,

1:07:33dia terima

1:07:35public key-nya, terus waktu

1:07:37nanti data

1:07:39mau dikirimkan, dia

1:07:41semua data yang

1:07:43mau dikirimkan ke server

1:07:45itu akan di hash

1:07:47menggunakan public key.

1:07:49Anguritmenya banyak, saya gak tahu,

1:07:51ada beberapa

1:07:53berbagai jenis.

1:07:55Dan di-encrypt,

1:07:57terus data yang di-encrypt

1:07:59akan dikirimkan ke server.

1:08:01Nah, data yang di server,

1:08:03saat diterima,

1:08:05sebelum dia didecrypt,

1:08:07sorry, untuk mendecryptnya

1:08:09itu, dia akan ada

1:08:11proses validasi. -Dicucukin sama private key ya?

1:08:13-Yes, jadi dari

1:08:15private key, yang itu dia

1:08:17kan ada

1:08:19challenge, ada hash-nya juga,

1:08:21ada challenge hash-nya itu akan

1:08:23validasi dengan private key,

1:08:25eh, cocok ini digenerin oleh public key-nya

1:08:27sendiri, barulah

1:08:29bisa di decrypt.

1:08:31Begitulah, sekirah-kirah

1:08:35cara bekerjanya, private key

1:08:37dan public key.

1:08:39Sama, itu

1:08:41mirip-mirip kok semua

1:08:43cara kerjanya SSL

1:08:45handshake itu sama kayak cara kerjanya

1:08:47SSL.

1:08:49Ingat gak, kalau SSL itu kan kita kalau jenis SSL

1:08:51lagi, ada IDRSA,

1:08:53ada, sekarang masih jaman

1:08:55IDRSA PUP,

1:08:57publica.

1:08:59Tapi, anyway,

1:09:01RSA yang biasa tanpa .PUB

1:09:03ada yang PUB.

1:09:05Nah, kalau biasa di server kita

1:09:07taro yang authorized key,

1:09:09itu kan PUB-nya doang, jangan

1:09:11private key. Nanti

1:09:13waktu dia handshake itu kita

1:09:15dari si klien akan

1:09:17connect ke server,

1:09:19dan data yang dikirimkan

1:09:21bisa diauthorized.

1:09:23Oke, ini benar dari private key

1:09:25yang...

1:09:27hasil hasilnya itu bisa

1:09:29di decrypt oleh

1:09:31public key, dan itu

1:09:33akan bisa nyambung, itu yang namanya

1:09:35handshake. Sama.

1:09:37Ini pasti

1:09:39temen-temen sering

1:09:41kejadian kalau mau

1:09:43pull request,

1:09:45mau kirim data ke

1:09:47GitHub, ya.

1:09:49Kalau nggak mau masukin user yang password

1:09:51pakai HTTP, pakai SSH,

1:09:53itu harus generate keygen

1:09:55nya dulu kan. Abis itu

1:09:57di copy-paste lah di GitHub-nya,

1:09:59apa RSA PUP-nya.

1:10:01Kita masukin

1:10:03di account settings sama

1:10:05di lokal kita ya?

1:10:07Iya.

1:10:09Dan public key,

1:10:11public key-nya itu unik untuk

1:10:13seluruh user yang ada

1:10:15di dunia.

1:10:17Nggak ada yang sama.

1:10:19Nggak bakal ada yang sama?

1:10:21Bisa jadi sama, tetapi

1:10:23kecil banget kemungkinannya.

1:10:25Kecil-kecil-kecil-kecil banget.

1:10:27Tapi

1:10:29so far nggak akan

1:10:31bisa sama. Misalnya temen-temen coba aja

1:10:33punya 2 account GitHub,

1:10:35masukin aja public key yang dari

1:10:37user A, masukin di user B

1:10:39nggak akan bisa.

1:10:41Iya. Sekarang GitHub

1:10:43udah harus

1:10:45provider authentication ya.

1:10:47Tidak bisa hanya email.

1:10:49Harus pakai

1:10:51ini ya. Apa namanya?

1:10:53Yang harus masukin dari

1:10:55external device

1:10:57atau apa-apa.

1:10:59Pakai paski dong.

1:11:01Pakai paski dong.

1:11:03Pengen tau paski,

1:11:05nanti datang ke Tok saya.

1:11:07Loh, di Malaysia.

1:11:09Di Malaysia.

1:11:11Di Malaysia.

1:11:13Hmm.

1:11:15Oke.

1:11:17Sudah.

1:11:19Selesai, dimateri kita?

1:11:21HTTP 3? Belum.

1:11:23HTTP 3 mau dibahas?

1:11:25Yang mana? Ada nggak?

1:11:27Ada, ada, ada.

1:11:29Coba bahas ya.

1:11:31HTTP 3.

1:11:33Kita masukkan.

1:11:35Jadi, HTTP 3 ini

1:11:39sendiri belum

1:11:41fully supported ya.

1:11:43Jadi, teman-teman.

1:11:45Dan HTTP 3

1:11:49ini sendiri ada beberapa

1:11:51standard. Sorry, ada

1:11:53substandardnya. Jadi, ada yang

1:11:55bisa streaming, bisa

1:11:57push, ada bisa

1:11:59UDP segala macam. Ada

1:12:01kode-kode-nya, dan saya pusing sendiri

1:12:03kalau mau menjelaskan yang satu-satu.

1:12:05Yang membedakan

1:12:07antara hati...

1:12:09main-main different,

1:12:11main ingredients-nya yang membedakan

1:12:13antara HTTP 2 dan

1:12:153. Itu

1:12:17adalah di HTTP 3

1:12:19instead of menggunakan

1:12:21TCP, dia menggunakan UDP.

1:12:23Yang artinya jauh lebih...

1:12:25Yang UDP itu...

1:12:27Jauh lebih cepat?

1:12:29User Datagram Protocol dia

1:12:31nggak ada aceka-acekaan.

1:12:33Tidak ada handshake?

1:12:35Ada handshake, tapi dia nggak aceka.

1:12:37Oh iya. Ini kan, bedanya

1:12:39TCP sama UDP.

1:12:41Kalau TCP, dia memastikan datanya

1:12:43nyampe. Kalau UDP, nggak peduli, kan?

1:12:45Betul, betul.

1:12:47Jadi, kita kirimin data, seram menyampe

1:12:49munggak terserah, gitu kan? Bebas.

1:12:51Broadcast, kayak broadcast data, gitu.

1:12:53Kalau TCP, setelah handshake,

1:12:55dia kirimin data, dia

1:12:57tungguin dulu. Bisa buka

1:12:59ini-nya saya, dari link-nya saya

1:13:01yang tentang UDP.

1:13:03Dia tungguin dulu, sampai...

1:13:05yang glossary

1:13:07yes, glossary UDP.

1:13:09Sampai datanya berhasil dikirim

1:13:11atau datanya error, kan?

1:13:13Kalau TCP/IP, kan?

1:13:15Ada diagram yang sedikit di bawah.

1:13:17Jadi, ada status-nya. Nah, ini dia.

1:13:19Kalau UDP, hanya

1:13:21request-response saja.

1:13:23Betul. Jadi,

1:13:25sync, sync-aceka, aceka.

1:13:27Jadi, dia nanya

1:13:29kalau TCP itu, buka

1:13:31koneksi dong. Oke.

1:13:33Dua terima nggak? Oke, gue terima.

1:13:35Dia kirim lagi. Oke, siap.

1:13:37Oke, kita sudah. Pasti ini.

1:13:39Sudah selesai.

1:13:41Barulah kirimkan data-nya. Jadi, ada

1:13:43round-robin di sini. Minimal.

1:13:45Jadi, setiap kali kita request,

1:13:47ada round-robin.

1:13:49Round-robin atau salah? Bukan apalah.

1:13:51Bahasanya itu. Bolak-balik lah.

1:13:53Beberapa kali ya.

1:13:55Kalau di UDP, request,

1:13:57langsung kasih semua. Nah.

1:13:59Ini buat lu semua. Bodo amat.

1:14:01Nggak ada status error, nggak ada status

1:14:05oke, dan lain-lain ya.

1:14:07Jadi, secara...

1:14:09Tapi, ini jadi lebih cepat.

1:14:11Ya.

1:14:13Jadi, jatahannya

1:14:15koneksinya jauh lebih...

1:14:17Ya, dua kali lebih cepat lah ya.

1:14:19Ya, karena dia nggak perlu bolak-balik kan.

1:14:21Tapi, reliable nggak?

1:14:25Kalau TCP kan, terkenal-nya

1:14:27reliable kan?

1:14:29Oke, sedikit

1:14:31ini ya, sedikit

1:14:33fallback, dia ada fallback-nya begini.

1:14:37Kalau saat ini

1:14:39standard-nya tuh.

1:14:41TCP, HTTPS 3

1:14:43wajib menggunakan HTTPS.

1:14:45Masih di atas HTTPS ya.

1:14:47Menggunakan, sorry, SSL-TLS.

1:14:49SSL-TLS ya.

1:14:51Harus menggunakan SSL-TLS

1:14:53karena UDP itu kan

1:14:57kemudian lagi secara data

1:14:59dia nggak peduli, jadi makanya harus di-encrypt.

1:15:01Nah, jadi

1:15:03saya pakai HTTPS 2

1:15:05Push yang tadi.

1:15:07Namun, secara

1:15:09asetektur atau konsep

1:15:13kalau si HTTPS 3 ini

1:15:15masih ada fallback ke HTTPS 2.

1:15:17Jadi, first request

1:15:19dari si server

1:15:21ya, dia, si klien

1:15:25kan nggak tahu nih

1:15:27kalau si server itu bisa HTTPS 3

1:15:29atau tidak.

1:15:31Ya, dia masih tetap menggunakan HTTPS 2.

1:15:33Si browser pertama kali

1:15:35dia ngedetek, oke

1:15:37dia request HTTPS biasa

1:15:39HTTPS 2.

1:15:41Terus si server itu

1:15:43baliknya kasih tahu

1:15:45eh, gue support HTTPS 3.

1:15:47Di header yang tadi kita lihat itu kan?

1:15:49Iya, coba mas Riza

1:15:51buka di network type-nya tadi.

1:15:55Buka aja ini.

1:15:57Di refresh.

1:16:01Oke.

1:16:05Ke bagian dock-nya aja di atas.

1:16:07Ya.

1:16:11Turun sedikit.

1:16:13Di header-nya, response.

1:16:15Oke.

1:16:17Dia ngasih tahu

1:16:19alternate service.

1:16:21Dia ngasih tahu, saya punya H3.

1:16:23Di port 3.

1:16:25Nah, disinilah

1:16:27browser switch.

1:16:29Menggunakan

1:16:31HTTPS 3.

1:16:33HTTPS 3 ini

1:16:37dulunya

1:16:39HTTPS 2 on

1:16:41quick protocol.

1:16:43Quick itu.

1:16:45Sebenarnya sebelumnya itu.

1:16:47Jadi belum ada nama HTTPS 3

1:16:49masih kayak HTTPS 2

1:16:51plus quick.

1:16:53Artinya HTTPS 2

1:16:55on top of UDP, that's it

1:16:57sebenarnya. Terus tapi

1:16:59akhirnya dijadikan the next standard

1:17:01menjadi HTTPS 3.

1:17:03Kemulanya, dia lebih cepat

1:17:07aja, lebih cepat mengirimkan data

1:17:09untuk

1:17:13yang lain saya

1:17:15nggak banyak.

1:17:17Bahkan Nginx sendiri

1:17:19belum. Nginx

1:17:21sendiri itu, terakhir ya

1:17:23tahun lalu, itu

1:17:25untuk support

1:17:27HTTPS 3 aja, dia masih

1:17:29experimental.

1:17:31Tapi saya udah

1:17:33ada docker image-nya.

1:17:35Sudah ada docker image-nya untuk bisa

1:17:39HTTPS 3.

1:17:41Ini salah satu

1:17:43keunggulannya juga kali ya. Quick ini

1:17:45didesign untuk mobile heavy

1:17:47internet usage.

1:17:49Kalau kita pakai mobile phone.

1:17:51Behavior orang tuh udah

1:17:53behavior orang yang access internet

1:17:55udah beda banget, antara sekarang sama tahun 90

1:17:57dulu. Betul.

1:17:59Kalau dulu kan pasti di desktop kan,

1:18:01atau di laptop lah. Di desktop dan

1:18:03pasti di kantor kan dulu.

1:18:05Sekarang gue baru internet di rumah.

1:18:07Sekarang di tangan. Sekarang gue baru

1:18:09ingat perumpamaan kenapa

1:18:11butuh HTTPS 3. Untung Mas Rizal

1:18:13sebutin. Jadi

1:18:15di mobile itu, kita kan ada

1:18:17tower. Tower A sama

1:18:19tower B. Tower A sama

1:18:21tower B. Terang-terang gue terlalu lewat.

1:18:23Tower A sama tower B.

1:18:25Anggap kita lagi naik kereta api.

1:18:27Kita waktu saat request

1:18:29saat request itu kita lebih dekat

1:18:31ke tower A. Tetapi waktu

1:18:33kita response ternyata

1:18:35kita lebih dekat

1:18:37ke tower B.

1:18:39Si nya handphone kita itu

1:18:41sudah switch ke tower B.

1:18:43Nah, jadi

1:18:45kalau kita tadi

1:18:47pakai proses TCP, dia

1:18:49bingung nih. Gagal.

1:18:51ACK-ACK nya itu jadi

1:18:53lambat. Jadi terlalu

1:18:55bisa kayak kita kok lambat banget

1:18:57lembut gitu kalau dalam kereta yang

1:18:59lagi melaju gitu ya. Sedangkan

1:19:01kalau pakai dissolve nya

1:19:03pakai quick ini. Jadi gak peduli

1:19:05tower mana source untuk

1:19:07internetnya. Dia gak perlu

1:19:09ACK-ACKan. Jadi tinggal kirim

1:19:11ya, diterima.

1:19:13Itu kenapa adanya

1:19:15quick.

1:19:17Ada

1:19:19apa kayak

1:19:21case.

1:19:23Penjelasannya gitu.

1:19:25Penjelasannya pakai comic.

1:19:27Katar belakang.

1:19:29Kalau dulu HTTP

1:19:31digunakan oleh

1:19:33orang-orang yang less portable

1:19:35atau device yang

1:19:37less portable seperti laptop ataupun

1:19:39PC, sekarang sudah tidak

1:19:41lagi. Bahkan kita

1:19:43kalau sekarang ke gedung aja

1:19:45access pointnya bisa

1:19:47aja kita gak tahu kan si

1:19:49device kita ambil access point yang mana.

1:19:51Yes.

1:19:53Jadi itu

1:19:55apa-apa, si HTTP 3 ini

1:19:57dikembangkan berdasarkan kebutuhan.

1:19:59Kebutuhan perubahan behavior

1:20:01kita sebagai user.

1:20:03Roundtrip

1:20:05bahasanya itu

1:20:07ada di sini kan.

1:20:09Roundtrip itu kayaknya pertandingan

1:20:11karakter.

1:20:13Roundtrip itu kayak bergantian

1:20:15gitu. Roundtrip itu kayak bergantian.

1:20:17Informaturnakan biasanya babak penyisihan

1:20:19gitu loh.

1:20:21Ya, biasanya kalau tiebreak itu ada

1:20:23roundtrip. Yes.

1:20:25Terus

1:20:27faster. Ya, connection

1:20:29establishment karena gak perlu

1:20:31ACK-ACKan.

1:20:33Iya, zero roundtrip sama

1:20:35descriptionnya udah lebih comprehensive.

1:20:37Jadi lebih soliti.

1:20:39Ya,

1:20:41ini adalah

1:20:43huge upgrade from HTTP 2.

1:20:45Help mitigate

1:20:47the risk of attacks.

1:20:49Itu dia HTTP 3. Tapi

1:20:51belum semua

1:20:53aplikasi menggunakan

1:20:55HTTP 3. Bahkan

1:20:57masih ada yang menggunakan HTTP 1.

1:20:59Tadi ada tulisannya dimana ya? Nah ini.

1:21:01After

1:21:03bukan ya.

1:21:05Express udah HTTP 3 belum ya?

1:21:07Kayaknya belum. Masih 2 sih.

1:21:09Oh ada nih isunya dari

1:21:11tahun 2021. Siapa tau teman-teman?

1:21:13Ini dia nih.

1:21:15Nah, kalau mau lihat website yang

1:21:17masih pakai HTTP 1 tuh

1:21:19coba ya buka deh.

1:21:21Di private chat.

1:21:23Okay.

1:21:25Wah, ini yang punya

1:21:27protokol ya? Ini halaman web pertama.

1:21:29Iya. Ini adalah

1:21:31halaman web pertama.

1:21:33Buka DevTools.

1:21:35Bisa kita lihat di kiri ada itu-nya.

1:21:37Kiri atas. Not secure.

1:21:39Ada warning-nya. Not secure.

1:21:41Kiri mana? Kiri atas.

1:21:43Di jaman itu belum ada HTTPS.

1:21:49Oh, HTTPS apa? HTTPS 1?

1:21:53HTTPS dan HTTPS 1.

1:21:57Belum ada HTTPS jelas.

1:21:59Terus ini kan keliatannya masih HTTPS 1 ya?

1:22:01Coba aja, reload.

1:22:03Accept.

1:22:07Tapi response-nya normal-normal aja.

1:22:09Nggak ada versiannya ya?

1:22:11Oh iya, HTTPS 1 kan belum ada

1:22:17versi kan?

1:22:19Masuk HTTPS 1 baru kan?

1:22:21Ini 0.9 nih.

1:22:23Ini 1 keliatannya deh.

1:22:251 ya?

1:22:27Udah ada ya?

1:22:29Coba lihat row-nya, Mas.

1:22:31Row.

1:22:33Udah ada response-nya, Mas.

1:22:35Cuma tadi kan ada alt.

1:22:37response-nya diklik row.

1:22:39Itu satu-satu.

1:22:41Oh iya, satu-satu.

1:22:43Kan udah ada response-nya, Mas.

1:22:45Tapi belum ada.

1:22:47Oh, nggak perlu.

1:22:49Formal spaces nggak perlu.

1:22:53Lihat ini-nya.

1:22:55Itu kan ini standarnya tuh.

1:22:57Harus begitu. Standarnya harus

1:22:59urutannya begitu tuh.

1:23:01HTTPS 1-1, 200, OK.

1:23:03Kan kita bahas lagi.

1:23:05Itu standar itu.

1:23:09Nggak boleh dirubah-rubah.

1:23:11Dan kita belum bahas tentang status-quot ya.

1:23:13Teman-teman udah tahu ya harusnya status-quot ya.

1:23:15100 informasi.

1:23:17Oke, siap.

1:23:21Teaser buat episode berikutnya.

1:23:23OK, HTTPS status-quot.

1:23:25Yang dinosaurus apa ya?

1:23:27Dinosaurus.

1:23:29Nggak ada dinosaurus.

1:23:31Ada 419.

1:23:33Lucu-lucu ya, lucu-lucu ya.

1:23:37Ada jokes-jokes-nya juga ya.

1:23:39Oke, siap-siap.

1:23:41Boleh, boleh, boleh.

1:23:43Siapa yang bikin

1:23:45best API server

1:23:47kalau gagal,

1:23:49pokoknya kirim 200, tapi status-nya

1:23:51status-status error.

1:23:53Status error.

1:23:55Saya pernah ngalamin beneran dong, salah.

1:23:57Terus dimerahin.

1:23:59Karena itu menaruh ke

1:24:01SEO kan.

1:24:03Saya paling benci sama developer

1:24:05yang bikin begitu.

1:24:07Ya Elna, kalau gagal

1:24:09kenapa dibikin 200?

1:24:11Ya, jadi buat

1:24:13teman-teman, warning ya.

1:24:15Anak-anak bikin nih, kalau bikin

1:24:17recipe I, hatikan status-quotnya.

1:24:21Itu karena belum ngerti aja sih.

1:24:23Sebentar, kalau GraphQL

1:24:25bukannya di 200 semua ya, walaupun error ya?

1:24:27Nggak ya?

1:24:29Kayaknya ya.

1:24:31Kalau error, ya error.

1:24:33Dengan status-quot 200?

1:24:37Dengan status-quot 500?

1:24:39Kayaknya

1:24:43memes yang mengembalikan 200 itu

1:24:45gara-gara GraphQL deh.

1:24:47Kayaknya ya, nggak tahu juga.

1:24:49Teman-teman, ada yang pernah menggunakan

1:24:51GraphQL?

1:24:53Nah, makanya ini cocok buat satu episode lagi, kan?

1:24:55Iya, bisa, bisa, bisa.

1:24:57GraphQL, status-quot.

1:25:01Ada ini GraphQL over HPTP.

1:25:03Iya, dia nggak suka.

1:25:07Suka-sukanya.

1:25:09Kayaknya status-quot aslinya

1:25:11di body response-nya

1:25:13atau gimana gitu.

1:25:17Iya, status-quot in GraphQL.

1:25:19Nah, ini ada nantilah

1:25:21buat kita nanti ya.

1:25:23Oke, baiklah buat episode berikutnya.

1:25:25Berarti bahasan kita

1:25:29tentang HTTPS dan HTTPS

1:25:31kita cukupkan sampai di sini.

1:25:33Ada pertanyaan yang belum terjawab? Nggak ada ya?

1:25:37Mudah-mudahan sudah terjawab semua?

1:25:39Pasti kan aplikasi kalian sudah harus pakai HTTPS ya?

1:25:41Iya, itu

1:25:43sudah keharusan, karena

1:25:45jadi kebalik sekarang.

1:25:47Kalau mau akses HTTPS itu susah.

1:25:49Kalau dulu. Apalagi

1:25:53sertifikatnya gratis, kan?

1:25:55Kalian bisa datang ke webinar-webinar

1:25:57gratis sertifikat.

1:25:59Bukan itu ya.

1:26:01Kalian bisa

1:26:03pakai lesson creep.

1:26:05Pakain gratisan, lesson creep.

1:26:07Kalau untuk butuhan khusus

1:26:09ya silahkan bikin sendiri,

1:26:11atau kalau pengen ini sendiri belajar.

1:26:13Setelah datang, setelah datang

1:26:15sudah bisa wildcard belum sih?

1:26:17Sudah bisa ya? Apa itu?

1:26:19Setelah datang sudah bisa wildcard belum?

1:26:21Wildcard subdomain.

1:26:23Wildcard.

1:26:25Dulu sih... Tetap per origin, kan?

1:26:27Per origin.

1:26:29Sertifikat itu per origin, kan?

1:26:31Sudah bisa. Setelah datang,

1:26:33zaman saya sering pakai

1:26:35itu belum bisa wildcard.

1:26:37Wildcard itu artinya kayak...

1:26:39Ya, semua

1:26:41subdomain didatarkan di satu domain.

1:26:43Jadi cuma pakai satu

1:26:45sertifikat

1:26:47untuk semua subdomain.

1:26:49Ya.

1:26:51Sekarang sudah bisa, kok.

1:26:53Sudah bisa wildcard. Tuh, lebih keren.

1:26:55Mantap, mantap.

1:26:57Oke, kalau begitu

1:26:59terima kasih banyak semuanya yang sudah

1:27:01menemani, yang sudah ikutan diskusi juga.

1:27:03Jangan lupa

1:27:05yang mau nanya

1:27:07kasih saran, kasih topik, bisa ke

1:27:09bit.ly/ngobrolinwait

1:27:11Kita

1:27:13udahan dulu malam hari ini, ketemu lagi

1:27:15minggu depan

1:27:17di hari Selasa dengan topik yang berbeda.

1:27:19Sampai jumpa, bye-bye.

1:27:21Bye.

Suka episode ini?

Langganan untuk update episode terbaru setiap Selasa malam!

Langganan Sekarang

Episode Terkait

Ngobrolin Protokol Jaringan - Ngobrolin WEB
EP 117

19 Feb 2025

Ngobrolin Protokol Jaringan - Ngobrolin WEB

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...

🗣️ Ngobrolin HTMX - Ngobrolin WEB
EP 97

17 Sep 2024

🗣️ Ngobrolin HTMX - Ngobrolin WEB

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...

Ngobrolin WebSocket - Ngobrolin WEB
EP 86

11 Jun 2024

Ngobrolin WebSocket - Ngobrolin WEB

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...

Komentar