Bu materyal, "Kurumsal Geliştirmeye Giriş" serisinin bir parçasıdır. Önceki makaleler:
MERHABA! Bugün HTTP ve HTTPS protokollerini öğreneceğiz. Ama önce bir noktayı açıklığa kavuşturalım: OSI modelinin uygulama düzeyinde bir ağ üzerinden veri göndermek için kullanılan protokollerden bahsediyoruz. OSI modelini önceki yazılarımızdan birinde öğrendiğimizi hatırlarsınız. Bunu hatırlamıyorsanız, işte burada .
Veri iletişim protokolü nedir?
Bu, farklı hizmetlerin geliştiricilerinin başkalarının anlayabileceği bir biçimde bilgi göndermesine izin veren üzerinde anlaşmaya varılmış kurallar dizisi olarak adlandırdığımız şeydir. Örneğin, hem Facebook hem de Twitter'dan bilgi almak için Google Chrome'u kullanabilirsiniz, çünkü geliştiriciler bilgileri tarayıcınızın işlemesine izin veren standart HTTP protokolünü kullanarak gönderir. Tek tip kurallar, sunucu bölümünü geliştiren kişiler için çok uygundur: bilgileri sizin için dönüştürebilen ve uygun protokolü kullanarak gönderebilen birçok kitaplık vardır. HTTP başlangıçta HTML sayfaları göndermek için bir protokol olarak tasarlandı. Uzun bir süre bu şekilde kullanıldı, ancak şimdi programcılar onu hem dizileri hem de medya dosyalarını göndermek için kullanıyor. Genel olarak, bu protokol evrensel olarak kabul edilir ve çok yönlüdür ve kullanımı gerçekten kolaydır. Ve şimdi nasıl kullanılacağını araştıracağız.HTTP'nin yapısı
HTTP protokolünün yalnızca metinden oluştuğunu hemen not etmeliyiz. Bizi en çok ilgilendiren bu metnin yapısıdır. Her mesaj üç bölümden oluşur:- Başlangıç satırı — Bu, bazı temizlik verilerini tanımlar.
- Başlıklar — Bunlar, mesaj parametrelerini tanımlar.
- Gövde — Bu, mesajın içeriğidir. Gövde, başlıklardan boş bir satırla ayrılmalıdır.
Basit bir HTTP isteği şöyle görünür:
GET / HTTP/1.1
Host: codegym.cc
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
Başlangıç çizgisi şunları gösterir:
- GET — İsteğin yöntemi
- / — isteğin yolu
- HTTP/1.1 — Protokol sürümü
- Ana bilgisayar — İsteğin gönderildiği ana bilgisayar
- User-Agent — İsteği gönderen müşteri
https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
burada codegym.cc ana bilgisayardır, /send isteğin yoludur ve ? sorgu parametrelerinin takip ettiğini gösteren bir ayırıcıdır. Sonunda, anahtar/değer çiftleri ("anahtar=değer") listelenir ve bir ve işaretiyle ayrılır. POST — Bu yöntem, sunucudaki bilgileri yayınlar. Bir POST isteği, çeşitli türde bilgiler gönderebilir: "anahtar=değer" çiftleri, JSON, HTML kodu ve hatta dosyalar gibi parametreler. Tüm bilgiler mesajın gövdesinde gönderilir. Örneğin:
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: codegym.cc
{
"Id": 12345,
"User": "John"
}
İstek codegym.cc/user/create/json adresine gönderilir ve protokol sürümü HTTP/1.1'dir. "Kabul Et", müşterinin almayı beklediği yanıt biçimini belirtir. "Content-Type", istekte gönderilen mesaj gövdesinin biçimini belirtir. "İçerik-Uzunluk", gövdedeki karakter sayısıdır. Bir HTTP isteği birçok farklı başlık içerebilir. Daha fazla bilgi için protokolün özelliklerine bakın .
HTTP yanıtları
Bir istek aldıktan sonra, sunucu onu işler ve istemciye bir yanıt gönderir:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98
<html>
<head>
<title>An Example Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
Yanıtın başlangıç satırı protokol sürümünü (HTTP/1.1), durum kodunu (200) ve durum açıklamasını (OK) içerir. Başlıkları, içeriğin türünü ve uzunluğunu içerir. Yanıt gövdesi, tarayıcının bir HTML sayfası olarak işlediği HTML kodunu içerir.
Yanıt durum kodları
Mesaj gövdesi ve başlıkları ile ilgili her şey açık, ancak durum kodları hakkında birkaç söz söylemeliyiz. Yanıt durum kodları her zaman üç hanelidir. Kodun ilk basamağı yanıtın kategorisini gösterir:- 1xx - Bilgilendirici. İstek alındı. Sunucu devam etmeye hazır.
- 2xx — Başarılı. Talep alındı, anlaşıldı ve işlendi.
- 3xx — Yönlendirme. İsteği işlemek için ek eylemler gerçekleştirilmelidir.
- 4xx — İstemci Hatası. İstek hatalar içeriyor veya protokole uymuyor.
- 5xx — Sunucu Hatası. İstek doğru bir şekilde oluşturuldu, ancak sunucu bunu işleyemedi.
- 200 OK — İstek alındı ve başarıyla işlendi.
- 201 Oluşturuldu — İstek alındı ve başarıyla işlendi, bu da yeni bir kaynak veya örneğin oluşturulmasıyla sonuçlandı.
- 301 Kalıcı Olarak Taşındı — İstenen kaynak kalıcı olarak taşındı. Bundan sonraki talepler yeni adres kullanılarak yapılmalıdır.
- 307 Geçici Yönlendirme — Kaynak geçici olarak taşındı. Şimdilik, otomatik yönlendirme kullanılarak erişilebilir.
- 403 Yasak — İstek anlaşıldı, ancak yetkilendirme gerekiyor.
- 404 Bulunamadı — Sunucu, kaynağı bu adreste bulamadı.
- 501 Uygulanmadı — Sunucu, isteğe yanıt vermek için gereken işlevselliği desteklemiyor.
- 505 HTTP Sürümü Desteklenmiyor — Sunucu, HTTP protokolünün belirtilen sürümünü desteklemiyor.
GO TO FULL VERSION