Sunucu Uygulaması Yanıtları – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
POST, HEAD ve Diğer İstekler
Daha önce bahsettiğim gibi doGet(), HTTP istek türleri için etkinleştirme yöntemlerinin bir koleksiyonundan yalnızca biridir. doPost(), POST istekleri için karşılık gelen yöntemdir. POST isteği, sunucuya bilgi göndermek için tasarlanmıştır, ancak pratikte URL’lerin uzunluğundaki sınırlamaları aşmak için uzun parametreli istekler ve daha büyük formlar için de kullanılır.
Sunucu uygulamanız veritabanı güncellemeleri yapıyorsa, bir kredi kartından ücret alıyorsa veya açık bir istemci eylemi gerçekleştiren herhangi bir şey yapıyorsa, bu etkinliğin bir doPost() yönteminde gerçekleştiğinden emin olmalısınız. Bunun nedeni, POST isteklerinin önemsiz olmamasıdır; bu, güvenli bir şekilde tekrarlanamayacakları ve web tarayıcılarının bunları özel olarak ele aldığı anlamına gelir.
Örneğin, bir tarayıcı yer işareti koyamaz veya bazı durumlarda bir POST isteğini yeniden yükleyemez. Öte yandan, GET istekleri önemsizdir, bu nedenle güvenli bir şekilde yer imlerine eklenebilirler ve bir tarayıcı, kullanıcıya danışmadan tekrar tekrar istek göndermekte özgürdür. Bir GET yönteminde neden bir kredi kartından borç almak istemediğinizi görebilirsiniz!
POST isteklerini işleyebilen bir sunucu uygulaması oluşturmak için tek yapmanız gereken, HttpServlet’ten varsayılan doPost() yöntemini geçersiz kılmak ve bunun içinde gerekli işlevselliği uygulamaktır. Gerekirse, uygulamanız doPost() ve doGet() içinde farklı kodlar uygulayabilir.
Örneğin, doGet() yöntemi, doPost() yönteminin işlediği gönderilebilir bir veri giriş formu görüntüleyebilir. doPost(), formu tekrar görüntülemek için sonunda doGet()’i bile çağırabilir.
HEAD, PUT, TRACE ve DELETE gibi daha az yaygın olan HTTP istek türleri, diğer doXXX() gönderme yöntemleri tarafından işlenir. HEAD isteği yalnızca HTTP başlıklarını döndürür, PUT ve DELETE, istemcilerin web sunucusundan kaynak oluşturmasına ve kaldırmasına izin verir ve TRACE, istek başlıklarını istemciye döndürür.
Çoğu sunucu uygulaması programcısının bu istekler hakkında endişelenmesi gerekmediğinden, HttpServlet sınıfı, istemciye isteğin desteklenmediğini bildiren veya minimum bir uygulama sağlayan, karşılık gelen her doXXX() yönteminin varsayılan bir uygulamasını içerir. Bu yöntemlerin kendi sürümlerinizi sağlayabilirsiniz, ancak PUT veya DELETE işlevinin uygulanmasının ayrıntıları, kapsamımızın oldukça ötesine geçer.
Sunucu Uygulaması Yanıtları
Yararlı bir şey yapmak için, bir sunucu uygulamasının kendisinden yapılan her isteğe bir yanıt göndermesi gerekir. Bir HTTP sunucu uygulaması durumunda, yanıt üç bileşen içerebilir: bir durum kodu, herhangi bir sayıda HTTP başlığı ve bir yanıt gövdesi.
ServletResponse ve HttpServletResponse arabirimleri, bir sunucu uygulamasının çıktısını oluşturmak ve işlemek için gereken tüm yöntemleri içerir. Sunucu uygulamasına iletilen yanıt nesnesinin setContentType() yöntemini kullanarak bir sunucu uygulaması tarafından döndürülen veriler için MIME türünü belirttiğinizi görmüştük.
Bir HTTP sunucu uygulamasıyla, MIME türü genellikle “metin/html”dir, ancak bazı sunucu uygulamaları ikili veri döndürür: bir veritabanından bir GIF dosyası yükleyen ve onu web tarayıcısına gönderen bir sunucu uygulaması, içerik türünü “image/gif” olarak ayarlamalıdır. ” bir Adobe Acrobat dosyası döndüren bir sunucu uygulaması onu “application/pdf” olarak ayarlamalıdır.
ServletResponse ve HttpServletResponse, çıktı akışları üretmek için iki yöntem tanımlar, getOutputStream() ve getWriter(). İlki, metinsel veya ikili veriler için kullanılabilen bir ServletOutputStream döndürür. İkincisi, yalnızca metin çıktısı için kullanılan bir java.io.PrintWriter nesnesi döndürür. getWriter() yöntemi, hangi karakter kümesinin kullanılacağını belirlemek için içerik türünü inceler, bu nedenle setContentType(), getWriter()’den önce çağrılmalıdır.
Sunucu ve istemci Nedir
İstemci sunucu mimarisi
Android lisans durumu nedir
Google Play Lisans anahtarı nasıl alınır
Client-Server Mimarisi Nasıl çalışır
İstemci ve sunucu arasında alınıp verilen isteklerin ve yanıtların içeriğin biçimlendirilmesi
İstemci Nedir
Android developer license
HttpServletResponse ayrıca HTTP yanıtlarını işlemek için bir dizi yöntem içerir. Bunların çoğu, HTTP başlık alanlarını değiştirmenize izin verir. Örneğin, setHeader(), setIntHeader() ve setDateHeader(), belirtilen bir HTTP başlığının değerini ayarlamanıza izin verirken, includeHeader() belirli bir başlığın önceden ayarlanmış olup olmadığını gösterir. Sunucuya geri gönderilen durum kodunu belirtmek için ThesetStatus() veya sendError() yöntemini kullanabilirsiniz.
HttpServletResponse, belirli durum kodlarını temsil eden uzun bir tamsayı sabitleri listesi tanımlar (bunlardan bazılarını birazdan göreceğiz). Varsayılan kod 200 (“Tamam”) olduğundan, sunucu uygulamasının normal bir yanıt gönderdiği anlamına geldiğinden, genellikle bir durum kodu ayarlama konusunda endişelenmenize gerek yoktur.
Ancak, karmaşık bir uygulama yapısının parçası olan bir sunucu uygulamasının (HTML sayfalarının gönderilmesini yöneten Java Web Sunucusunda bulunan dosya sunucu uygulaması gibi) çeşitli durum kodlarını kullanması gerekebilir. Son olarak, sendRedirect() yöntemi, bir sayfa yönlendirmesi yapmanıza olanak tanır. Bu yöntemin çağrılması, Konum üstbilgisini belirtilen konuma ayarlar ve yeniden yönlendirme için uygun durum kodunu kullanır.
Sunucu Uygulaması İstekleri
Bir sunucu uygulamasından bir isteği işlemesi istendiğinde, isteği uygun şekilde işleyebilmesi için genellikle istekle ilgili belirli bilgilere ihtiyaç duyar. Bir servlet’in bir form değişkeninin değerini nasıl alabildiğini ve bu değeri çıktısında nasıl kullanabileceğini zaten gördük. Bir sunucu uygulamasının, içinde çalıştığı ortamla ilgili bilgilere de erişmesi gerekebilir. Örneğin, bir sunucu uygulamasının, kimlik doğrulama amacıyla, sunucu uygulamasına erişen gerçek kullanıcıyı bulması gerekebilir.
ServletRequest ve HttpServletRequest arayüzleri bu tür bilgilere erişim sağlar. Bir sunucu uygulamasından bir isteği işlemesi istendiğinde, sunucu ona bu arabirimlerden birini uygulayan bir istek nesnesi iletir. Bu nesneyle, sunucu uygulaması gerçek istek hakkında bilgi edinebilir (ör. protokol, URL, tür), ham isteğin bölümlerine erişebilir (ör. başlıklar, giriş akışı) ve müşteriye özel istek parametrelerini (ör. değişkenler, ekstra yol bilgisi).
Örneğin getProtocol() yöntemi istek tarafından kullanılan protokolü döndürürken getRemoteHost() istemci ana bilgisayarının adını döndürür. Arabirimler ayrıca bir sunucu uygulamasının sunucu hakkında bilgi almasına izin veren yöntemler de sağlar (örn. getServername(), getServerPort()). Daha önce gördüğümüz gibi getParameter() yöntemi, form değişkenleri gibi istek parametrelerine erişim sağlar.
Ayrıca, belirli bir parametre için tüm değerleri içeren bir dizi dizi döndüren getParameterValues() yöntemi de vardır. Bu dizi genellikle yalnızca bir dize içerir, ancak bazı HTML form öğeleri (HTTP yönelimli olmayan hizmetlerin yanı sıra) birden çok seçime veya seçeneğe izin verir, bu nedenle yöntem, uzunluğu bir dizi olsa bile her zaman bir dizi döndürür.
HttpServletRequest, HTTP’ye özgü istek verilerini işlemek için birkaç yöntem daha ekler. Örneğin, getHeaderNames(), bir istekle gönderilen tüm HTTP başlıklarının adlarının bir listesini döndürürken, getHeader() belirli bir başlık değeri döndürür.
Daha sonra tartışacağımız gibi, çerezleri ve oturumları işlemek için başka yöntemler mevcuttur. Örnek, HTTPS protokolü aracılığıyla bağlanan, Digest stili kimlik doğrulamasını kullanan ve bir devlet sitesinden (.gov ile biten bir alan) gelen kullanıcılara erişimi kısıtlayan bir sunucu uygulamasını göstermektedir.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)