Java ile ağ ve HTTP programlama
Soketlerle istemci ve sunucu yazar, HttpClient ile servislere bağlanır, keytool ile anahtar depolarını yönetip TLS’i doğru yapılandırırsın.
Seviye 301 · 18 ders · 15 pratik lab
Dersler
Soketler
- Socket ile TCP istemcisi
- ServerSocket ile çok istemcili sunucu
- Soket zaman aşımları ve kaynak temizliği
- DatagramSocket ile UDP
- InetAddress ile ad çözümleme
- Kısa görev: satır tabanlı komut sunucusu
HTTP
- HttpClient: GET, POST ve başlıklar
- Eşzamansız istekler ve yeniden deneme
- Jackson ile JSON eşleme
- Yerleşik HttpServer ile küçük servis
- İstek boyutu, zaman aşımı ve güvenli başlıklar
- Kısa görev: lab API’sinden veri çekip özetleyen istemci
TLS ve anahtar depoları
- keytool ile anahtar deposu ve güven deposu
- TLS istemcisi ve sertifika doğrulama
- Tüm sertifikalara güvenmek: neden asla
- TLS sunucusu ve protokol seçimi
- Kısa görev: istemciyi yalnızca iç CA’ya güvenecek şekilde ayarla
Bitirme
- Bitirme görevi: lab servislerinin sağlık ve sertifika izleyicisi
Pratik lablar
- Socket ile karşılama satırını okumak: Socket ile lab hedefindeki hizmete bağlan, ilk satırı oku ve bağlantıyı try-with-resources ile kapat.
- Satır tabanlı komut sunucusu: ServerSocket ile ZAMAN, YANKI ve ÇIK komutlarını işleyen, her istemciyi havuzdaki bir iş parçacığında karşılayan sunucuyu yaz.
- Soket zaman aşımları ve kaynak temizliği: Sessiz istemcilerin iş parçacıklarını tükettiği sunucuya okuma zaman aşımı, bağlantı sınırı ve her yolda kapanış ekle; yük testinde iş parçacığı sayısı sabit kalmalı.
- Ad listesini adreslere çözmek: InetAddress ile lab alan adlarının tüm adreslerini çöz ve çözülemeyenleri ayrı listede döndür.
- UDP ile zaman sorgusu göndermek: DatagramSocket ile sorgu gönderen istemciyi yaz; yanıt gelmezse zaman aşımıyla üç kez yeniden dene.
- UDP'de kayıp ve sıra bozulmasını ölçmek: Sıra numaralı datagramlar gönderip alan çifti yaz; kayıp, yinelenen ve sırası bozulan paket sayılarını raporla ve sahte ağ testlerini geç.
- HttpClient ile durum ve başlık okumak: Lab API'sine GET isteği gönder; durum kodunu ve içerik türü başlığını döndür, bağlantı ve istek zaman aşımlarını ayarla.
- JSON yanıtını Jackson ile nesnelere eşlemek: Lab API'sinin döndürdüğü listeyi record nesnelerine eşle; bilinmeyen alanları yok say, eksik zorunlu alanda anlaşılır hata ver.
- Eşzamansız istekler ve yeniden denemeyle özet çıkarmak: Lab API'sinin sayfalarını sendAsync ile eşzamanlı çek; geçici hatalarda sınırlı sayıda yeniden dene ve toplam özetini üret.
- Yerleşik HttpServer ile sağlık uç noktası: Yerleşik HttpServer ile durum bilgisini JSON döndüren uç noktayı yaz ve yanlış metoda 405 ver.
- İstek gövdesine boyut sınırı koymak: Gövdeyi sınırsız okuyan işleyiciye boyut sınırı ekle; aşan istekte 413 döndür ve akışı her yolda kapat.
- Küçük hizmeti başlıklar ve süre sınırlarıyla sertleştirmek: Tek iş parçacıklı küçük hizmete sınırlı havuz, güvenlik başlıkları ve iç ayrıntı sızdırmayan hata yanıtları ekle; yavaş istemcinin diğerlerini bekletmediğini göster.
- İç yetkiliyi güven deposuna eklemek: keytool ile lab iç sertifika yetkilisini yeni bir güven deposuna ekle ve içeriğini listeleyerek doğrula.
- İstemciyi yalnızca iç yetkiliye güvendirmek: Her sertifikayı kabul eden güven yöneticisini kaldır; yalnızca iç yetkiliye güvenen SSLContext kur ve yanlış adlı lab sunucusunun reddedildiğini göster.
- TLS sunucusunda sürüm seçimi ve sertifika izleme: TLS sunucusunu yalnızca 1.2 ve 1.3 kabul edecek şekilde kur; lab hizmetlerinin sertifika bitişlerini denetleyip otuz günden az kalanlar için uyarı üret.
Kurs hakkında
Soketlerle istemci ve sunucu yazar, HttpClient ile servislere bağlanır, keytool ile anahtar depolarını yönetip TLS’i doğru yapılandırırsın.
Ne öğreneceksin
- Soketler
- HTTP
- TLS ve anahtar depoları
- Bitirme
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.