HTTP İstemi

Bu örnekte önce HTTP temel bilgileri açıklanmaktadır. Bu, arayüzün çalışma şeklini anlamak için önemlidir.

Temeller

Aşağıdaki noktaları mutlaka dikkate almanız gerekir:

  • HTTP üzerinden bir istek yapılırken, istemci tarafından bir bağlantı kurulur ve sunucu tarafından bağlantının kesilmesiyle tamamlanır.
  • İstek TCP üzerinden Port 80 (şifresiz HTTP) ve Port 443 (şifreli HTTPS) üzerinden gerçekleştirilir.
  • Port 80 http:// veya Port 443 https:// kullanılırsa, port gizlenir.
  • HTTP/1.1'den itibaren bağlantı katmanı, TCP'nin handshake işlemini atlamak için bir süre açık bırakılmaktadır. Bu, Antcas monitöründe görülemez. Ancak zaman aşımından sonra istemci, yani Antcas sunucusu tarafından bağlantı kesilir. Zaman aşımı bu nedenle yeterince yüksek olmalıdır.
  • Herhangi bir isteğin tamamen geri uyumludur. Bir sunucu HTTP/1.0, HTTP/1.1 veya HTTP/2'yi destekleyip etmeyeceği önemli değildir.
  • Başlık Case-Insensitive'dir. Bu, büyük ve küçük harflerin önemi olmadığını anlamına gelir. Ancak bazı üreticiler bu şekilde uygulama yapmamaktadırlar.
  • Antcas Control'daki karakter kodlaması her zaman UTF-8'dir. Diğerleri kullanılırsa, bunların dönüştürülmesi gerekmektedir.
  • URL'nin toplam uzunluğu (sorguyla birlikte) 2'083 karakterdir.

Bir URL'in yapısı şu şekildedir:

http://server.tld/getdata?project=you%26i+project&id=25#anker
Bileşen Anlamı
http:// Protokolü tanımlar. Antcas Control şu anda http ve https'yi destekler.
server.tld Hedef sunucunun etki alanını (DNS) veya IP adresini tanımlar.
getdata Sunucunun URI'sidir. Bu, hedef sayfaya karşılık gelir ve bir yola benzer.
?[...] ? işareti URL'yi GET isteğinden ayırır ve ardından tüm form verileri veya sorgulanan veriler gelmektedir. Sorgulama her zaman kodlanmıştır, desteklenmeyen karakterleri değiştirmek için.
#[...] # işareti bir sayfadaki bir anker tanımlar. Böylece istediğiniz bir noktaya atlayabilirsiniz (kaydırma). Bu veriler sunucuya iletilmez. Ayrıca bu alan # dahil olmak üzere sorguda kopyalanmamalıdır, çünkü böylece sunucudaki farklı bir hedef sayfayı çağırır.

Hedef sunucuların yapilandirmasi ilgili HTTP Gateway'de yapilir.

Arayüzün Yapısı

Bir arayüzün yapısı bir başlık ve bir gövde içerir. Başlık ilk satırda her zaman kullanılan yöntemi, URI'yi ve protokolü gösterir.

GET /getdata?project=you%26i+project&id=25 HTTP/1.1
Host: server.tld

Buna sunucunun yanıtı takip eder. Bu, sorgu durum kodunu içerir. Gövde başlıktan bir boş satırla sonra gelir.

HTTP/1.1 200 OK
Server: Apache2
Content-Type: text/html

<html>Merhaba Dünya</html>

Durum Kodları

Durum kodları gruplara ayrılmıştır. Gruplar ilk rakamla tanımlanır. Ayrıca sayıdan sonra açıklama açık metinle gelir. İşte bazı örnekler:

Durum Açıklama
200 OK İstek başarılı oldu.
301 Found Gerçek sayfaya yönlendirme. Antcas Control bağlantılar izlediği için bu yanıt genellikle gizlenir.
404 Not Found Belirtilen sayfa bulunamadı.
500 Internal Server Error Bir sunucu hatası oluştu.

Yöntemler

GET ve POST yöntemleri en sık kullanılır.

Yöntem Açıklama
GET GET isteği standart istemdir. Bu, içerik desteklemez.
POST POST isteği bir içeriği sunucuya gönderir. İçerik boş olabilir. Avantaj burada, içerikte uzunluk sınırı yoktur. Bir GET isteğinde yalnızca belirli sayıda veri iletilebilir.
PUT PUT, ara yüzler tarafından bilgileri değiştirmek için kullanılır.
DELETE PUT ile birlikte verileri silmek için kullanılır.
(diğerleri) Diğer HTTP yöntemleri de desteklenmektedir, ancak uygun bir yapılandırma gerektirirler.

Kimlik Doğrulama

Çoğu kimlik doğrulamalar başlıkta gerçekleşir. Ancak bazı istekler sorgulama veya içerikte tanımlanmaktadır.

Gerçek istekten önce bir oturum oluşturmanız gerekebilir. Oturum daha sonra Set-Cookie olarak başlığa ayarlanır. Bu çerez daha sonra iletilmelidir. Çerezlerin içeriği Case-Sensitive'dir, bu da içerik birbirine eşleşmelidir. İşte basitleştirilmiş bir örnek:

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

Sunucunun yanıtı:

HTTP/1.1 200 OK
Server: Apache2
Content-Type: text/html
Set-Cookie: SESSION=vmvbquk7dq6dbbcq

Şimdi çerez sonraki istekte yeniden kullanılabilir:

GET /opendoor HTTP/1.1
Host: server.tld
Cookie: SESSION=vmvbquk7dq6dbbcq

İpuçları

Tarayıcının geliştirici konsolunda, ağ sekmesinden istek değerlendirilebilir ve test edilebilir. Ayrıca bazı durumlarda başlığı kopyalamak veya görmek de uygun olabilir.

Yapılandırma

Antcas Control'da bir HTTP arayüzü bir gateway ile oluşturulur. Gateway, HTTP istemci olarak yapılandırılır. Burada hedef adres ve port (gereklidir) uygun şekilde girilir. Daha sonra yapıda istek yapılandırılır. Bunun için İletişim altındaki URL değişken olarak girilir.

Basit İstek

Bir basit isteği oluşturmak için herhangi bir veri türü seçilir. Bu, tercihen bir karakter dizisidir (string). Çıktıda bir değer değişikliği meydana gelirse, zaten bir istek gerçekleştirilmiştir. Değer daha sonra doğrudan sorgulama olarak kullanılır.

Karışık İstek

HTTP_REQUEST İş Bloku kullanılarak daha karmaşık bir istekte bulunulur. Bunun için iletişim veri türü raw olarak ayarlanmalıdır. Yanıt daha sonra HTTP_RESPONSE İş Bloku ile değerlendirilebilir. Sorgu kimliği, yanıtı doğru şekilde atamak için mutlaka bağlanmalıdır.

Örnek

Bu örnekte GET yöntemi kullanılarak veriler bir sunucuya gönderilir ve yanıt değerlendirilir. Tam URL şu şekildedir:

http://server.tld/getdata?project=you%26i+project&id=25

Verilerin bir sunucudan alınması veya gönderilmesi için aşağıdaki örnek kullanılır:

Not: Örnek, isteğin nasıl tetiklenmesi gerektiğini göstermez. Bu, SET girişindeki pozitif kenar ile tetiklenir. İstenmeyen bir isteği önlemek için DIS girişini TRUE olarak ayarlamanız önerilir.

Arayüzün yapılandırılması şu şekilde yapılır: