HTTP Kodları: Java ile Web Servisleri Anlamak
Web servisleri ile etkileşimde bulunurken, sunucunun bize ne söylediğini anlamak çok önemlidir. Bunu anlamak için HTTP durum kodlarını kullanırız. HTTP durum kodları, sunucunun istemciye gönderdiği üç haneli sayısal kodlardır ve istemci talebinin sonucu hakkında bilgi verir. Bu yazıda, Java programcılarının sıkça karşılaştığı HTTP kodlarını ve bunların anlamlarını açıklayacağız. Her HTTP durum kodunun, başarılı, yönlendirilmiş veya hata durumunu belirten farklı anlamları vardır.
Başarılı Durum Kodları
Sunucu talebi başarıyla işledi ise, başarılı durum kodları gönderilir. En yaygın başarılı durum kodları şunlardır:
200 OK
İstemci talebi başarıyla tamamlandı ve sunucu istenen bilgiyi gönderdi.
201 Created
Sunucu yeni bir kaynak oluşturdu ve isteğe cevap olarak kaynak URL’sini gönderdi.
202 Accepted
Sunucu talebi kabul etti, ancak henüz işlemedi.
204 No Content
Sunucu talebi başarıyla işledi ancak herhangi bir içerik göndermedi.
Yönlendirme Durum Kodları
Yönlendirme durum kodları, istemciyi farklı bir URL’ye yönlendirmek için kullanılır.
301 Moved Permanently
İstenen kaynak kalıcı olarak yeni bir URL’ye taşındı. Tarayıcılar gelecekteki istekler için yeni URL’yi kullanacaklar.
302 Found
İstenen kaynak geçici olarak yeni bir URL’ye taşındı. Tarayıcılar sonraki istekler için orijinal URL’yi kullanmaya devam edecekler.
304 Not Modified
Sunucu kaynak değişmediği için yeni bir içerik göndermeyecek. İstemci tarayıcısındaki önbellekteki sürümü kullanabilir.
Hata Durum Kodları
Sunucu talebi işleyemediğinde, hata durum kodları gönderilir.
400 Bad Request
İstemci tarafından yapılan istek geçersizdir. Örneğin, eksik veya yanlış parametreler olabilir.
401 Unauthorized
İstemci sunucu kaynaklarına erişmek için yetkili değil.
403 Forbidden
İstemcinin sunucu kaynaklarına erişmesine izin verilmiyor, ancak yetkilendirme hatası olmadığı için yetkilendirme ile ilgili değil.
404 Not Found
İstenen kaynak sunucuda bulunamadı.
405 Method Not Allowed
Sunucu belirtilen HTTP yöntemini desteklemiyor.
408 Request Timeout
Sunucu, istemciden zaman aşımı süresi içinde yanıt almayı bekledi.
429 Too Many Requests
İstemci çok fazla istek gönderdi.
500 Internal Server Error
Sunucuda beklenmedik bir hata oluştu.
502 Bad Gateway
Sunucu, başka bir sunucuya talep iletemedi.
503 Service Unavailable
Sunucu geçici olarak kullanılamıyor.
504 Gateway Timeout
Sunucu başka bir sunucudan zaman aşımı süresi içinde yanıt almayı bekledi.
HTTP Kodları ile Java Programlama
Java programcıları, HTTP kodlarını kullanarak web servisleriyle etkileşim kurmak için çeşitli kütüphaneler ve framework’ler kullanabilir. Bunlardan en yaygın olanları şunlardır:
Apache HttpComponents
Apache HttpComponents, Java’da HTTP istekleri göndermek ve yanıtları almak için kullanılan popüler bir kütüphanedir. HttpComponents’in kullanımı oldukça basittir. Bir HTTP istek nesnesi oluşturur, HTTP yöntemini, URL’yi ve diğer istek başlıklarını ayarlayabilir ve daha sonra isteği göndermek için bir HttpClient nesnesi kullanabilirsiniz. Yanıt nesnesi, istemciye gelen HTTP durum kodu, yanıt başlıkları ve yanıt gövdesi bilgilerini içerir.
OkHttp
OkHttp, performansı ve güvenliği göz önünde bulundurarak tasarlanmış başka bir popüler HTTP istemci kütüphanesidir. OkHttp, HTTP istekleri göndermek ve yanıtları almak için bir API sağlar. OkHttp, bağlantı havuzlama, isteğe bağlı yönlendirme, önbellekleme ve HTTP/2 ve SPDY desteği gibi özellikler sunar.
Spring Web
Spring Web, web uygulamaları geliştirmek için kullanılan bir Java framework’üdür. Spring Web, HTTP isteklerini işlemek için bir controller katmanı ve RESTful web hizmetleri oluşturmak için bir RestController katmanı sağlar. Spring, HTTP durum kodlarını otomatik olarak işleyerek geliştiricilerin web servislerini oluşturmayı kolaylaştırır.
Örnek: HTTP Kodlarını Kullanarak Web Servisleri Anlamak
Aşağıdaki Java kodu, bir web servisinden verileri almak için OkHttp kullanır ve gelen HTTP durum kodunu gösterir:
“`java
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class HttpCodeExample {
public static void main(String[] args) throws Exception {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(“https://fatihsoysal.com”)
.build();
try (Response response = client.newCall(request).execute()) {
if (response.isSuccessful()) {
System.out.println(“Başarılı! Durum kodu: ” + response.code());
} else {
System.out.println(“Hata! Durum kodu: ” + response.code());
}
}
}
}
“`
Yukarıdaki kod, OkHttp kütüphanesini kullanarak fatihsoysal.com adresinden verileri alır ve gelen HTTP durum kodunu yazdırır. Eğer istek başarılı olursa, “Başarılı! Durum kodu: 200” çıktısını alırız. Eğer istek başarısız olursa, “Hata! Durum kodu: 404” gibi bir hata mesajı alırız.
Özet
HTTP durum kodları, Java programcılarının web servisleri ile etkileşimde bulunurken sunucu yanıtlarını anlamaları için çok önemlidir. Bu durum kodlarını anlayarak, web servisleri ile sorunsuz bir şekilde etkileşim kurabilir ve uygulamaları daha güvenilir ve sağlam hale getirebilirsiniz.
#Etiketler
#HTTP #Java #WebServisleri #DurumKodları #OkHttp #Spring #ApacheHttpComponents #Geliştirme #Programlama #FatihSoysal #fatihsoysal.com