Belajar HTTP

 Catatan dari free course Programmer Zaman Now kelas "Belajar HTTP untuk Pemula"


Agenda

  • Pengenalan HTTP
  • URL
  • HTTP Method
  • HTTP Header
  • HTTP Body
  • HTTP Response
  • HTTP Cookie
  • Dll


Pengenalan HTTP
Apa itu HTTP?
HTTP adalah singkatan dari HyperText Transfer Protocol. 
HTTP merupakan salah satu protokol untuk melakukan transmisi hypermedia document dari satu komputer ke komputer yang lain. Transmisi sendiri berarti pengiriman dari satu tempat ke tempat yang lain. Beberapa contoh document yang bisa transmisikan diantaranya:
  • HTML
  • Javascript
  • CSS
  • Image
  • Audio
  • Video
  • Dll
Pada awalnya HTTP dibuat untuk komunikasi antara Web Browser dengan Web Server, namun saat ini sudah berkembang dan bisa digunakan untuk kebutuhan lain seperti Backend, API, dll.

Pada HTTP bisa terjadi interaksi HTTP Request & HTTP Response.
Request terjadi pada sisi Client, sedangkan Response terjadi pada sisi Server.

Pada sisi Web Browser menggunakan arsitektur Client Server, sehingga pada Client Server bisa mengirimkan HTTP Request untuk meminta data via protocol HTTP menuju Web Server.

Selanjutnya setelah dari sisi Client Server mengirimkan HTTP Request maka dari sisi Web Server akan menerima Request tersebut dan membalas dengan mengembalikan balasan berupa HTTP Response yang akan berjalan juga pada protocol HTTP.

HTTP memiliki prinsip "Plain Language and Human Readable". Pada awalnya hanya terdapat 2 metode seperti metode GET dan POST. Dikarenakan saking populer dan berkembangnya jaman, protocol HTTP mendapatkan pengembangan metode tambahan. Kini protocol HTTP memiliki metode-metode seperti:
  • GET
  • POST
  • PUT
  • DELETE
  • HEAD
  • OPTION
Selain dari itu, HTTP merupakan protocol yang "Stateless". Apa itu "Stateless"?
Stateless adalah request yang independent, jadi tidak ada hubungannya antara request satu dengan request yang lain. Sehingga HTTP tidak akan menyimpan informasi atau data apapun dalam requestnya baik sebelum (pre request) atau sesudahnya (response).

Terkait pengembangannya dikarenakan adanya beberapa kasus yang mengharuskan menyimpan data request maupun response maka diciptakanlah "HTTP Cookie" yang berfungsi untuk menyimpan data-data pada sisi Web Browser untuk menangani salah satu kasusnya adalah "Session" untuk menyimpan data Login.


HTTP Version
HTTP selalu mengelami pengembangan. Saat ini, kebanyakan web berjalan pada protocol HTTP/1.1 atau HTTP/2.
Untuk HTTP/2 sendiri hadir pada tahun 2015 dan sudah digunakan pada semua browser saat ini.

Lalu apa perbedaan HTTP/1.1 dan HTTP/2?
Saat ini HTTP/1.1 merupakan fallback protocol, dimana Web Browser secara default akan melakukan request menggunakan HTTP/2. Akan tetapi jika Web Server tidak mendukung request protocol tersebut maka web browser akan melakukan fallback ke protocol HTTP/1.1. Sehingga kita sebagai pengguna tidak perlu khawatir akan proses ini karena Web Browser saat ini sudah otomatis mengerti response dari Web Server adalah via protocol HTTP/1.1 atau HTTP/2.

Secara garis besar spesifikasi HTTP/2 sebenarnya hampir sama dengan HTTP/1.1, yang membedakannya diantaranya
  • HTTP Request pada protocol HTTP/2 dikirimkan dalam bentuk format TEXT yang secara otomatis berubah menjadi data Binary, pada protocol HTTP/1.1 masih berupa format TEXT
  • HTTP/2 menggunakan algoritma kompresi untuk memperkecil requestnya
  • HTTP/2 support fitur multiplexing, sehingga Web Browser dapat mengirimkan beberapa Request dalam satu Connection yang sama 
Karena point-point diatas inilah maka proses pengiriman pada protocol HTTP/2 jadi lebih cepat dibandingkan protocol HTTP/1.1.

Secara default, data yang dikirimkan via HTTP Request dan balikan data dari HTTP Response tidak atau belum di-enkrisi maka pada protocol HTTP tidak disarankan mengirimkan data-data request yang bersifat penting seperti Password, PIN, OTP, dll. Karena rentan akan mudahnya diretas oleh pihak yang bisa disebut "Man in the Middle".

Untuk menjawab masalah ini maka terciptalah pengembangan protocol HTTP yang lebih aman atau Secure bernama HTTPS (HyperText Transfer Protocol Secure) yang berjalan pada layer SSL (Secure Socket Layer) untuk meng-enkripsi HTTP Request dan juga HTTP Responsenya.

Ciri dari website yang menggunakan protocol HTTP pada URL akan bertuliskan http://
sedangkan pada website yang menggunakan protocol HTTP yang secure akan bertuliskan https://

Jika kamu menemukan website yang mewajibkan mengisi data-data penting seperti Password, PIN dan OTP akan tetapi alamat URL-nya masih bertuliskan http:// disarankan jangan pernah mengisikan data tersebut.


HTTP Terminology
Saat belajar HTTP, akan banyak sekali terminology atau istilah-istilah yang digunakan
  • Web Browser
    Merupakan aplikasi yang digunakan untuk mengakses web menggunakan protocol HTTP.
    Contoh: Google Chrome, Mozilla Firefox, Opera, Safari, dll
  • TCP
    TCP singkatan dari Transmission Control Protocol. TCP adalah protocol khusus pada jaringan komputer. TCP bisa digunakan sebagai protocol jaringan pada Web untuk komunikasi antar jaringan dari Web Browser ke Web Server atau juga pada saat proses pengiriman Email atau juga pada saat melakukan pengiriman file menggunakan FTP (File Transfer Protocol) ataupun ketika menggunakan Internet atau LAN (Local Area Network)
  • IP
    IP atau singkatan dari Internet Protocol. IP sendiri adalah identitas komputer pada jaringan.
  • URL
    URL singkatan dari Uniform Resource Locator. URL merupakan alamat dari sebuah resource di Web
  • DNS
    DNS singkatan dari Domain Name Server. DNS merupakan tempat yang berisikan data katalog pemetaan antara nama domain di URL menuju lokasi IP Komputer. Contoh ketika kamu mengakses sebuah website dengan nama maka DNS akan memetakan IP Server mana yang akan diakses pada Server
  • Web Server
    Merupakan aplikasi yang berjalan pada server untuk menyimpan aplikasi Web. Web server dapat menerima Request dari client dan akan memberikan Response sesuai informasi Request yang diminta oleh client

Comments