Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также любые проблемы программирования на различных макроязыках и в скриптовых средах)

Uniform Resource Locator (URL) и использование адресной строки браузера

URL и доменное имя компьютера

URL - это Унифицированный Указатель Ресурса (Uniform Resource Locator). Также эту аббревиатуру иногда расшифровывают как Универсальный Указатель Ресурса (Universal Resource Locator). URL, который можно набрать в адресной строке браузера, имеет следующую форму:

протокол://доменное_имя_компьютера/директория/поддиректория/.../имя_файла

Доменное имя компьютера отражает иерархическую, или доменную, структуру службы DNS. Например, в имени fadr.msu.ru fadr - это имя компьютера в домене (второго уровня) msu.ru, который принадлежит домену (первого уровня) ru. Самая правая часть доменного имени определяет тип организации или страну, например:


comкоммерческие организации
eduучебные заведения
govправительственные учреждения
intмеждународные организации
milвоенные организации
netсетевые службы
orgнекоммерческие организации

Двухбуквенные домены стран:


acОстров ВознесенияAscension Island
adАндорраAndorra
aeОбъединённые Арабские ЭмиратыUnited Arab Emirates
afАфганистанAfghanistan
agАнтигуа и БарбудаAntigua and Barbuda
aiОстров АнгильяAnguilla
alАлбанияAlbania
amАрменияArmenia
anАнтильские островаNetherlands Antilles
aoАнголаAngola
aqАнтарктикаAntarctica
arАргентинаArgentina
asАмериканское СамоаAmerican Samoa
atАвстрияAustria
auАвстралияAustralia
awОстров АрубаAruba
azАзербайжданAzerbaijan
baБосния и ГерцеговинаBosnia and Herzegovina
bbБарбадосBarbados
bdБангладешBangladesh
beБельгияBelgium
bfБуркина-ФасоBurkina Faso
bgБолгарияBulgaria
bhБахрейнBahrain
biБурундиBurundi
bjБенинBenin
bmБермудские островаBermuda
bnБрунейBrunei Darussalam
boБоливияBolivia
brБразилияBrazil
bsБагамские островаBahamas
btБутанBhutan
bvОстров БувеBouvet Island
bwБотсванаBotswana
byБелоруссияBelarus
bzБелизBelize
caКанадаCanada
ccКокосовые (Килинг) островаCocos (Keeling) Islands
cdКонго (Киншаса)Congo
cfЦентральноафриканская РеспубликаCentral African Republic
cgКонго (Браззавиль)Congo
chШвейцарияSwitzerland
ciКот-д'Ивуар (Берег Слоновой Кости)Cote d'Ivoire
ckОстрова КукаCook Islands
clЧилиChile
cmКамерунCameroon
cnКитайChina
coКолумбияColombia
crКоста-РикаCosta Rica
csЧехословакияCzechoslovakia
cuКубаCuba
cvКабо-ВердеCap Verde
cxОстров РождестваChristmas Island
cyКипрCyprus
czЧешская республикаCzech Republic
deГерманияGermany
djДжибутиDjibouti
dkДанияDenmark
dmДоминикаDominica
doДоминиканская республикаDominican Republic
dzАлжирAlgeria
ecЭквадорEcuador
eeЭстонияEstonia
egЕгипетEgypt
ehЗападная СахараWestern Sahara
erЭритреяEritrea
esИспанияSpain
etЭфиопияEthiopia
fiФинляндияFinland
fjФиджиFiji
fkФолклендские островаFalkland Islands (Malvina)
fmМикронезияMicronesia
foФарерские островаFaroe Islands
frФранцияFrance
fxФранция (метрополия)France
gaГабонGabon
gbВеликобританияGreat Britain
gdГренадаGrenada
geГрузияGeorgia
gfФранцузская ГвианаFrench Guiana
ggОстров ГернсиGuernsey
ghГанаGhana
giГибралтарGibraltar
glГренландияGreenland
gmГамбияGambia
gnГвинеяGuinea
gpГваделупаGuadeloupe
gqЭкваториальная ГвинеяEquatorial Guinea
grГрецияGreece
gsОстрова Южная Джорджия и Южный СэндвичSouth Georgia and the South Sandwich Islands
gtГватемалаGuatemala
guГуамGuam
gwГвинея-БисауGuinea-Bissau
gyГайанаGuyana
hkГонгконгHong Kong
hmОстрова Херд и МакдональдHeard and McDonald Islands
hnГондурасHonduras
hrХорватияCroatia/Hrvatska
htГаитиHaiti
huВенгрияHungary
idИндонезияIndonesia
ieИрландияIreland
ilИзраильIsrael
imОстров МэнIsle of Man
inИндияIndia
ioБританские территории в Индийском океанеBritish Indian Ocean Territory
iqИракIraq
irИранIran
isИсландияIceland
itИталияItaly
jeОстров ДжерсиJersey
jmЯмайкаJamaica
joИорданияJordan
jpЯпонияJapan
keКенияKenya
kgКиргизияKyrgyzstan
khКамбоджаCambodia
kiКирибатиKiribati
kmКоморские острова (Коморы)Comoros
knСент-Китс и НевисSaint Kitts and Nevis
kpКНДРNortn Korea
krРеспублика КореяSouth Korea
kwКувейтKuwait
kyОстрова КайманCayman Islands
kzКазахстанKazakhstan
laЛаосLao
lbЛиванLebanon
lcОстров Сент-ЛюсияSaint Lucia
liЛихтенштейнLiechtenstein
lkШри-ЛанкаSri Lanka
lrЛиберияLiberia
lsЛесотоLesotho
ltЛитваLithuania
luЛюксембургLuxembourg
lvЛатвияLatvia
lyЛивияLibyan Arab Jamahiriya
maМароккоMorocco
mcМонакоMonaco
mdМолдоваMoldova
mgМадагаскарMadagascar
mhМаршалловы островаMarshall Islands
mkМакедонияMacedonia
mlМалиMali
mmМьянма (Бирма)Myanmar
mnМонголияMongolia
moМакао (Аомынь)Macau
mpСеверные Марианские строваNorthern Mariana Islands
mqМартиникаMartinique
mrМавританияMauritania
msМонтсерратMontserrat
mtМальтаMalta
muМаврикийMauritius
mvМальдивыMaldives
mwМалавиMalawi
mxМексикаMexico
myМалайзияMalaysia
mzМозамбикMozambique
naНамибияNamibia
ncНовая КаледонияNew Caledonia
neНигерNiger
nfОстров НорфолкNorfolk Island
ngНигерияNigeria
niНикарагуаNicaragua
nlНидерландыNetherlands
noНорвегияNorway
npНепалNepal
nrНауруNauru
ntНейтральная зонаNeutral Zone
nuОстров Ниуэ (Океания)Niue
nzНовая ЗеландияNew Zealand
omОманOman
paПанамаPanama
peПеруPeru
pfФранцузская ПолинезияFrench Polynesia
pgПапуа-Новая ГвинеяPapua New Guinea
phФилиппиныPhilippines
pkПакистанPakistan
plПольшаPoland
pmСен-Пьер и МикелонSt. Pierre and Miquelon
pnОстров ПиткэрнPitcairn Island
prПуэрто-РикоPuerto Rico
psПалестинские территорииPalestinian Territories
ptПортугалияPortugal
pwПалауPalau
pyПарагвайParaguay
qaКатарQatar
reОстров РеюньонReunion Island
roРумынияRomania
ruРоссияRussian Federation
rwРуандаRwanda
saСаудовская АравияSaudi Arabia
sbСоломоновы ОстроваSolomon Islands
scСейшельские ОстроваSeychelles
sdСуданSudan
seШвецияSweden
sgСингапурSingapore
shОстров Святой ЕленыSt. Helena
siСловенияSlovenia
sjОстрова Шпицберген (Свальбард) и Ян-МайенSvalbard and Jan Mayen Islands
skСловацкая РеспубликаSlovak Republic
slСьерра-ЛеонеSierra Leone
smСан-МариноSan Marino
snСенегалSenegal
soСомалиSomalia
srСуринамSuriname
stСан-Томе и ПринсипиSao Tome and Principe
suСССРUSSR
svСальвадорEl Salvador
syСирияSyrian Arab Republic
szСвазилендSwaziland
tcОстрова Теркс и КайкосTurks and Caicos Islands
tdЧадChad
tfФранцузские южные территорииFrench Southern Territories
tgТогоTogo
thТаиландThailand
tjТаджикистанTajikistan
tkТокелауTokelau
tmТуркменияTurkmenistan
tnТунисTunisia
toТонгаTonga
tpВосточный ТиморEast Timor
trТурцияTurkey
ttТринидад и ТобагоTrinidad and Tobago
tvТувалуTuvalu
twТайваньTaiwan
tzТанзанияTanzania
uaУкраинаUkraine
ugУгандаUganda
ukВеликобритания и Сев. ИрландияUnited Kingdom
umМалые Удалённые Острова СШАUS Minor Outlying Islands
usСШАUnited States
uyУругвайUruguay
uzУзбекистанUzbekistan
vaВатиканHoly See (City Vatican State)
vcСент-Винсент и ГренадиныSaint Vincent and the Grenadines
veВенесуэлаVenezuela
vgВиргинские острова (Британия)Virgin Islands (British)
viВиргинские острова (США)Virgin Islands (USA)
vnВьетнамVietnam
vuВануатуVanuatu
wfУоллис и ФутунаWallis and Futuna Islands
wsСамоаWestern Samoa
yeЙеменYemen
ytМайоттаMayotte
yuЮгославия (Сербия и Черногория)Yugoslavia
zaЮжная АфрикаSouth Africa
zmЗамбияZambia
zrЗаирZaire
zwЗимбабвеZimbabwe

Обычно национальные доменные зоны позволяют регистрировать то или иное имя лишь резидентам конкретной страны. Однако такая регистрация часто рассматривается владельцами доменов как возможность извлечения дополнительных доходов. Иногда целые домены маленьких государств передаются полностью в управление различным организациям, которые далее регистрируют в этих доменах адреса по своему усмотрению.

Самая левая часть полного доменного имени компьютера часто бывает названа по имени типа серверной программы, которая на нём установлена, например www.microsoft.com или ftp.microsoft.com. Эти адреса могут принадлежать одному и тому же компьютеру с различными серверными программами, установленными на нём.

Примечание: вообще говоря, в конце полного доменного имени обязательно стоит точка (например, www.somehost.msu.su.). Именно такое представление является правильным, но браузеры и другие программы часто позволяют опускать завершающую точку. Завершающая точка называется корневым доменом, или доменом нулевого уровня. Это база данных, распределённая по заранее известным серверам по всему миру, в которой содержится список всех доменов первого уровня, таких, как com., net., ru. и т.д. Домен нулевого уровня один и не имеет наименования.

В доменных именах регистр букв не учитывается. Однако имена каталогов и файлов, следующие за доменным именем, могут быть чувствительны к регистру (это зависит от типа операционной системы, под управлением которой работает Web-сервер).

В редких случаях в URL может потребоваться указать номер коммуникационного порта (администратор сервера может настроить сервер так, что для обмена будут использоваться порты, отличные от принятых по умолчанию). Например: http://www.domainname.com:8080/products/products.htm. Для каждого протокола имеется свой номер порта по умолчанию. Прокси-сервер может блокировать передачу данных на нестандартные номера портов.

При использовании минимального варианта записи URL (без указания каталогов и файлов, только доменное имя) происходит обращение к корневому каталогу Web-сайта - если завершающая наклонная черта не указана, она подразумевается и добавляется либо браузером, либо Web-сервером. При этом сервер передаёт файл, который задан по умолчанию и называется индексным. Часто этот файл имеет имя "index.htm", "default.htm" и т.п.

DNS - Служба Доменных Имён (Domain Name System) и IP-адреса

Каждый компьютер в сети имеет уникальный IP-адрес, который представляет из себя 4-байтовое число, записываемое в десятичном виде и разделяемое точками на четыре части (например, 213.180.204.8). Числа в каждом сегменте находятся в промежутке от 0 до 255.

Когда браузер получает запрос от пользователя для обращения к удалённому компьютеру по доменному адресу, первое, что происходит - это обращение к службе DNS (серверу DNS, специальной машине в cети) для преобразования доменного имени в IP-адрес. Существует множество утилит, с помощью которых можно сделать такой запрос и получить результат, не прибегая к услугам браузера. Например, программа nslookup позволяет узнать IP-адрес по URL такой командной строкой:

nslookup URL

Таким образом, что бы вы не набрали в адресной строке браузера - http://www.ya.ru или http://213.180.204.8 - результат будет один и тот же.

Одному и тому же IP-адресу вполне может соответствовать сразу несколько доменных имен. Также возможен случай, когда одному и тому же DNS-имени сопоставлены несколько разных IP-адресов. В этом случае служба DNS автоматически выбирает тот из адресов, который, по её мнению, ближе всего расположен к клиенту, или который давно не использовался, или же наименее загружен. Эта возможность часто задействуется, когда Web-сервер становится очень большим (точнее, когда число его клиентов начинает превышать некоторый предел), и его приходится обслуживать сразу нескольким компьютерам.

При вводе IP-адреса в адресную строку браузера (или как аргумента команды "ping") с ним иногда можно производить некоторые манипуляции (преобразования). Данные преобразования могут работать или не работать в зависимости от версии браузера, настроек прокси-сервера, установленной на компьютере операционной системы (т.е. конкретно у Вас может не работать ничего из сказанного несколько ниже). При этом то, что не работает в браузере, может работать в ping (возможно, есть и ещё какие-то нюансы). Перечень возможных преобразований IP-адреса, например, http://213.180.204.8:


http://213.180.204.264 К каждой части IP-адреса можно прибавлять число 256 произвольное количество раз, но так, чтобы результат оставался трёхзначным.
http://0xD5.0xB4.0xCC.0x8
http://0xD5B4CC08
IP-адрес может быть записан в шестнадцатеричной форме.
http://0325.0264.0314.010
http://000325.000264.000314.00010
IP-адрес может быть записан в восьмеричной форме. При этом количество лидирующих нулей может быть сколь угодно большим.
http://3585395720
http://7880363016
Шестнадцатеричное представление адреса, состоящее из восьми цифр, можно перевести в десятичное число. Если прибавить к полученному числу число 4294967296 (т.е. 2564) любое количество раз, полученный результат будет идентифицировать тот же IP-адрес.
http://0x2D5B4CC08 Прибавлять число 4294967296 (т.е. 2564) можно и в шестнадцатеричной форме (где оно выглядит как 100000000).
http://00325.0xB4.204.010 Можно использовать смешанный тип записи.

Аутентификация пользователя с помощью URL

Символ "@", поставленный внутри URL, означает, что все знаки между "http://" и "@" к выбору адреса никакого отношения не имеют. Например, http://111@www.ya.ru приведёт на http://www.ya.ru. Знаки, введенные между "http://" и "@" используются для аутентификации пользователя. Например, если вход на определенный ресурс интернета требует ввода логина и пароля. В этом случае, имя пользователя и пароль разделяются двоеточием, например: ftp://username:password@www.whatever.com/members/memberfile.zip. В том случае, если вход не требует авторизации пользователя, лишние знаки просто игнорируются сервером. Примечание: включать пароль в URL не рекомендуется из соображений безопасности.

Представление URL кодами символов

Каждый символ в URL может быть представлен соответствующим ему номером в шестнадцатеричной форме. Перед каждым таким символом нужно ставить знак "%" для идентификации последующих за ним двух цифр/букв в качестве шестнадцатеричного представления (такой способ может применяться для отображения пробелов и других неиспользуемых символов в URL). Например, http://www.%79%61.ru будет интерпретирован как http://www.ya.ru. Вот некоторые символы из таблицы ASCII, которые можно использовать, и их коды:


0123 4567 89AB CDEF
0NULSOHSTXETXEOTENQ ACKBELBSHTLFVTFFCRSOSI
1DLEDC1DC2DC3DC4NAK SYNETBCANEMSUBESCFSGSRSUS
2SP!"#$% &'()*+,-./
3012345 6789:;<=>?
4@ABCDE FGHIJKLMNO
5PQRSTU VWXYZ[\]^_
6`abcde fghijklmno
7pqrstu vwxyz{|}~DEL

Переход на конкретную позицию интернет-страницы

Объектом URL может служить не только сама интернет-страница, но и позиция на этой странице. В этом случае после открытия страницы браузер прокрутит страницу до нужной позиции так, чтобы эта позиция оказалась видимой (если страница не помещается целиком на экране). Если HTML-код страницы содержит тэги <a>, у которых задан атрибут "name", вы можете сослаться на это конкретное место (тэг) на странице с помощью символа "#" в конце URL. После символа "#" должно быть указано значение атрибута "name". Например, ссылка http://www.mydomainname.ru/about.html#contens приведёт на тэг с именем "contens" в документе "about.html" на сервере "www.mydomainname.ru", если в коде этого документа есть конструкция типа <a name="contens">...какой-то текст...</a>.

Передача данных скриптам и заполнение форм с помощью URL

C помощью URL можно передать некоторые данные скрипту, который работает на заданной интернет странице, и запустить этот скрипт. В этом случае не придётся открывать предварительно страницу, заполнять поля ввода и "вручную" нажимать на кнопку или ссылку, запускающую скрипт. Например, набрав в адресной строке браузера строку http://www.yandex.ru/yandsearch?&text=текст%20поиска, вы сымитируете следующие действия: открытие страницы www.yandex.ru, набор в поле ввода текста "текст поиска" и нажатие кнопки "Найти". В результате запустится скрипт "yandsearch" с параметром "text", равным "текст%20поиска". Конечно, при этом неплохо бы точно знать, какие параметры вообще можно передавать скрипту (таких параметров может быть несколько, в этом случае они разделяются знаком &, например: http://www.yandex.ru/yandsearch?&text=текст%20поиска&zone=all). Однако эти параметры в некоторых случаях можно достаточно легко определить экспериментальным путём.

Людоговский Александр

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.