Проверка существования (валидности) урла ...

StUV

Rotaredom
Проверка существования (валидности) урла ...

Вопрос:
Какие диапазоны кодов ответа веб-сервера однозначно говорят о несуществовании запрошенного пути на сервере ?

Задача - GET запросом определить "существование" http-адреса в терминах IIS имеющего вид "web site + virtual dir".
При этом предполагается, что данная вирт. директория должна предоставлять права на скачку из нее файлов.

Это вообще реально ? Или есть "ничего не говорящие" варианты ответов веб-сервера ?

Всем спасибо.
 

crocodile2u

http://vbolshov.org.ru
Имхо, на сто процентов ты не сможешь быть уверен. Всеразличные ЧПУ могут полностью замаскировать "несуществование" адреса...

Насчет скачивания - не вполне понял, что ты имеешь в виду...
 

StUV

Rotaredom
забыл добавить
всякого рода "вредительство" заведомо исключено =)

т.е. смысл в том, что некий админ в некоторой проге вводит урл к директории обслуживаемой веб-сервером, в которой лежат файлы.

необходимо запросом (возможно и не ГЕТ-ом - не знаю) определить - действительно ли существует такой адрес и можно ли оттуда качать файлы - при этом подразумевается, что в момент проверки файлов в этой директории может и не быть.

т.е. главная проверка - на "физическое" существование и на доступ на чтение к файлам
 

kruglov

Новичок
StUV
Физическое существование проверяется соединением по FTP
 

ChesterOne

Guest
Можно попробовать так:
PHP:
if ( fopen("http://domain.com/dir/", "r") ) {
	echo "Valid";
} else {
	echo "Invalid";
}
 

SiMM

Новичок
ChesterOne,
> Какие диапазоны кодов ответа веб-сервера однозначно говорят о несуществовании запрошенного пути на сервере ?
Так что, мягко говоря, мимо кассы.
 

ChesterOne

Guest
SiMM
> действительно ли существует такой адрес
Удовлетворяет

-~{}~ 10.11.05 17:34:

Главный вопрос был
> действительно ли существует такой адрес
и лишь как следствие
> Какие диапазоны кодов ответа веб-сервера однозначно говорят о несуществовании запрошенного пути на сервере ?
По крайней мере я понял так.
 

StUV

Rotaredom
ChesterOne
> Удовлетворяет
к сожалению нет - так как язык реализации C++ (поэтому и вопрос в оффтопе), то и интересует "теоретический" ответ с точки зрения rfc...

kruglov
доступа по фтп может и не быть (и скорее всего)
- интересно именно хттп-решение
 

kruglov

Новичок
StUV
Интересно HTTP - открывайте сокет, пишите туда GET и все такое прочее согласно RFC, ждите ответа. Получаете ответ 200 - скорее всего файл есть. Получаете 404 - скорее всего нету. Если получите, например, 301, то действуйте по обстоятельствам.
 

kruglov

Новичок
SiMM
Трудно сказать, ему там надо папку на существование проверять, посему еще и проверять, что там список ссылок на файлы есть. По-видимому, эта подсознательная мысль и продиктовала мне этот путь.
 

ChesterOne

Guest
Судя по всему названия файлов неизвестны. А что делать если ответ 403 Forbidden Zone? :)
И вообще, настройки веб сервера могут так сильно варироваться, что думаю однозначного ответа быть не может. :(
 

StUV

Rotaredom
SiMM
вот я и спрашиваю - "как?" (если б знал ответ - и топика б не было =)

kruglov
файлов в папке может и не быть
подразумевается, что если файлы есть - то они доступны для скачивания

ChesterOne
так же подразумевается, что если настройки веб-сервака дают как следствие "не тот" ответ, то это "неправильные" настройки, о чем юзеру проги и сообщается

Напомню и уточню - (!!!) - юзером проги является админ веб-сервера (или админ веб-сервера подчиняется этому юзеру) - поэтому ему _выгодно_ настроить все сразу в нужном виде

главная задача этой проверки - показать, что есть ошибка или в настройках веб-сервера или во введенном адресе
 

SiMM

Новичок
Если бы вопрос звучал, как "дайте список ответов сервера" - было бы проще :)
http://rusdoc.kulichki.ru/public/Internet/kody_otvetov.shtml
А так - не знаю :)
 

ChesterOne

Guest
Настраиваем сервер.
Отсылаем заголовок:
PHP:
GET http://www.domain.com/dir/ HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg
Accept-Language: en-us,en;q=0.5
User-Agent: Mozilla compatible
Host: www.domain.com
Pragma: no-cache
Получаем ответ сервера. Что то вроде:
PHP:
HTTP/1.1 200 OK
Date: Fri, 11 Nov 2005 05:14:37 GMT
Server: Apache
Connection: close
Content-Type: text/html
Обращаем внимание на ReplyCode, в данном случае это #200.
200: Все верно
403: Неверно настроен сервер
404: Неверно указана директория
None: Неверно указан URL

Поправте меня если я не прав :)
 

StUV

Rotaredom
SiMM
=)

в общем все ясно - в смысле веба такая задача редко ставится, поэтому и ответы "не в ту сторону смотрят" ;)

всем спасибо
буду дальше ковыряться в rfc
 
Сверху