HTTP Sunucusu API'lerine Genel Bakış

Aşağıdaki liste, HTTP Sunucusu API'sini kullanan tipik bir işlem dizisini tanımlar:

  • httpinitialize işlevini kullanarak HTTP Server API'sini başlatın.
  • HttpCreateHttpHandle işlevini kullanarak bir istek kuyruğu oluşturun.
  • HttpAddUrl işlevini kullanarak bir veya daha fazla URL kaydedin.
  • HttpReceiveHttpRequest işlevini kullanarak kayıtlı URL'lere yönlendirilen gelen istekleri alın ve HttpSendHttpResponse işlevini kullanarak bu istekler için HTTP yanıtları gönderin.
  • (İsteğe bağlı) Yanıt gönderirken HttpSendResponseEntityBodyişlevinikullanarak ek bir varlık gövdesi gönderin.
  • Temizleme işlemlerini gerçekleştirmek için HttpRemoveUrl, CloseHandle ve HttpTerminate işlevlerini kullanın.

URL kullanan işlemlerde, kullanılması gerekenin HTTP_REQUEST_V1 yapısının CookedUrl üyesinde yer alan işlenmiş URL olduğunu unutmayın. pRawUrl üyesinde, yalnızca izleme ve istatistiksel amaçlar için işlenmemiş URL'yi kullanmayın.

Her uygulama kendi istek kuyruğunu oluşturur. Uygulama, istek kuyruğu tanıtıcısını HttpCreateHttpHandlealır. URL'yi istek kuyruğuna eklemek için bu tanıtıcıyı HttpAddUrl işlevine geçirir. Uygulama, gelen bir isteğin bildirimini alır ve istek kuyruğu tanıtıcısıyla HttpReceiveHttpRequest işlevini çağırarak istek kuyruğundan alım yapar. İstek üst bilgilerini veya hem üst bilgileri hem de varlık gövdesini almak için bu işlevi kullanabilirsiniz. HttpReceiveHttpRequest, alınan istek için istek tanıtıcısına özgü bir istek tanımlayıcısı (RequestId) de döndürür.

Not olarak

Uygun olması durumunda, uygulamanın sorumluluğu, kullanılmaları halinde içerik anlaşması üst bilgileri de dahil olmak üzere tüm ilgili istek üst bilgilerini incelemek ve üst bilgi içeriğine dayanarak istekleri reddetmektir. HTTP Sunucusu API'si yalnızca her üst bilgi satırının düzgün şekilde sonlandırılmasını sağlar ve geçersiz karakterler içermez.

 

varsa, isteğin varlık gövdesinin sonraki bölümlerini almak için istek kuyruğu tanıtıcısıyla httpReceiveRequestEntityBodyişlevinikullanın.

Not

HTTP Server API'si alma tarafında öbeklenmiş iletilerin kodunu çözer, ancak gönderme tarafında öbeklenmiş kodlama gerçekleştirmez. Gönderme tarafında öbekleme gerekiyorsa, uygulamanın bunu uygulaması gerekir. Öbeklenmiş kodlama hakkında daha fazla bilgi için bkz. RFC 2616.

 

İsteğe bağlı olarak istemcinin sertifika bilgilerini almak için güvenli bir düzen ("https") kullanarak URL'lere hizmet veren uygulamalarla HttpReceiveClientCertificate işlevini kullanın.

Yanıtlar HttpSendHttpResponse işleviyle gönderilir. Bu işlev, yanıtı göndermek için ilgili istekten RequestId değerini kullanır. İlk alınan istekten RequestId ile HttpSendResponseEntityBody işlevi çağrılarak zaman içinde birkaç API çağrısında yanıt gönderilebilir.

Not

Varsayılan olarak, httpsendhttpresponse"Sunucu:" üst bilgisi olarak "Microsoft-HTTPAPI/1.0" kullanır. Bir uygulama yanıtta bir sunucu üst bilgisi belirtirse, bu değer sunucu üst bilgisinin ilk bölümü olarak, ardından bir boşluk ve ardından "Microsoft-HTTPAPI/1.0" olarak yerleştirilir.

 

Genel olarak, HTTP Sunucusu API'si bağlantı yönetiminin ayrıntılarını ve bunların kurulmasını ve uygulamalardan kaldırılmasını gizler. Ancak, bir uygulama isteğe bağlı olarak HttpWaitForDisconnectçağırarak bağlantının sonlandırılmasına yönelik algılama yapabilir.

Uygulamaların aşağıdaki adımları kullanarak temizlenmesi gerekir:

  • Uygulama bir URL'yi dinlemediğinde veya yanıtlamadığında, HTTPRemoveURLişlevikullanılarak URL kaldırılır.
  • Uygulama istek kuyruğu kullanılarak tamamlandığında, CloseHandle işlevini kullanarak istek kuyruğu tutamacını kapatın.
  • Uygulama HTTP Server API'sini kullanmayı bitirdiğinde HttpTerminate işlevini çağırın.