HttpResponseHeader HttpStatusCode
NetworkAccess
SecurityProtocolType TransportType
WebExceptionStatus
Помимо этого, в пространстве имен System.Net определен ряд делегатов.
Несмотря на то что в пространстве имен System.Net
определено немало членов, лишь немногие из них на самом деле требуются при решении наиболее типичных задач программирования для Интернета. Основу сетевых программных средств составляют абстрактные классы WebRequest
и WebResponse
. От этих классов наследуют все классы, поддерживающие конкретные сетевые протоколы. (HttpWebRequest
и HttpWebResponse
.
Классы HttpWebRequest
и HttpWebResponse
довольно просты в использовании. Тем не менее решение некоторых задач можно еще больше упростить, применяя подход, основанный на классе WebClient
. Так, если требуется только загрузить или выгрузить файл, то для этой цели лучше всего подойдет класс WebClient
.
Универсальные идентификаторы ресурсов
В основу программирования для Интернета положено понятие System.Net
, и поэтому в данной книге выбрано именно это сокращение для обозначения универсального идентификатора ресурса. Идентификаторы URI, без сомнения, известны каждому, кто хотя бы раз пользовался браузером для поиска информации в Интернете. По существу, это адрес информационного ресурса, который указывается в соответствующем поле окна браузера.
Ниже приведена общая форма идентификатора URI:
где Uri
, рассматриваемый далее в этой главе.
Основы организации доступа к Интернету
В классах, находящихся в пространстве имен System.Net
, поддерживается модель взаимодействия с Интернетом по принципу запроса и ответа. При таком подходе пользовательская программа, являющаяся клиентом, запрашивает информацию у сервера, а затем переходит в состояние ожидания ответа. Например, в качестве запроса программа может отправить на сервер идентификатор URI некоторого веб-сайта. В ответ она получит гипертекстовую страницу, соответствующую указанному идентификатору URL Такой принцип запроса и ответа удобен и прост в применении, поскольку большинство деталей сетевого взаимодействия реализуются автоматически.
На вершине иерархии сетевых классов находятся классы WebRequest
и WebResponse
, реализующие так называемые
Как упоминалось выше, классы WebRequest
и WebResponse
являются абстрактными, а следовательно, в них определенны в самом общем виде операции запроса и ответа, типичные для всех протоколов. От этих классов наследуют более конкретные производные классы, в которых реализуются отдельные протоколы. Эти производные классы регистрируются самостоятельно, используя для этой цели статический метод RegisterPrefix()
, определенный в классе WebRequest
. При создании объекта типа WebRequest
автоматически используется протокол, указываемый в префиксе URI, если, конечно, он доступен. Преимущество такого принципа "подключения" протоколов заключается в том, что большая часть кода пользовательской программы остается без изменения независимо от типа применяемого протокола.