3.2.1 Общий синтаксис.

URI в http могут представляться в абсолютной (absolute) форме или относительно некоторой известной основы URI (relative), в зависимости от контекста их использования. Эти две формы различаются тем, что абсолютные URI всегда начинаются с имени схемы с двоеточием.

          URI         = ( absoluteURI | relativeURI ) [ "#" fragment ]
          absoluteURI = scheme ":" *( uchar | reserved )
          relativeURI = net_path | abs_path | rel_path
          net_path    = "//" net_loc [ abs_path ]
          abs_path    = "/" rel_path
          rel_path    = [ path ] [ ";" params ] [ "?" query ]
          path        = fsegment *( "/" segment )
          fsegment    = 1*pchar
          segment     = *pchar
          params      = param *( ";" param )
          param       = *( pchar | "/" )
          scheme      = 1*( ALPHA | DIGIT | "+" | "-" | "." )
          net_loc     = *( pchar | ";" | "?" )
          query       = *( uchar | reserved )
          fragment    = *( uchar | reserved )
          pchar       = uchar | ":" | "@" | "&" | "=" | "+"
          uchar       = unreserved | escape
          unreserved  = ALPHA | DIGIT | safe | extra | national
          escape      = "%" HEX HEX
          reserved    = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+"
          extra       = "!" | "*" | "'" | "(" | ")" | ","
          safe        = "$" | "-" | "_" | "."
          unsafe      = CTL | SP | <"> | "#" | "%" | "<" | ">"
          national    = <любой OCTET за исключением ALPHA, DIGIT,
                           reserved, extra, safe, и unsafe>

Полную информацию относительно синтаксиса и семантики URL смотрите RFC 1738 [4] И RFC 1808 [11]. Вышеуказанная нормальная запись Бекуса-Наура включает национальные символы, недозволенные в допустимых URL (это определено в RFC 1738), так как http серверы позволяют использовать для представления части rel_path адресов набор незарезервированных символов, и, следовательно, http прокси-сервера могут получать запросы URI, не соответствующие RFC 1738.

Протокол http не накладывает a priori никаких ограничений на длины URI. Серверы ДОЛЖНЫ быть способны обработать >URI любого ресурса, который они обслуживают, и им СЛЕДУЕТ быть в состоянии обрабатывать URI неограниченной длины, если они обслуживают формы, основанные на методе GET, которые могут генерировать такой URI. Серверу СЛЕДУЕТ возвращать код состояния 414 (URI запроса слишком длинный, Request-URI Too Long), если URI больше, чем сервер может обработать (смотрите раздел 10.4.15).

Обратите внимание: Серверы должны быть осторожны с URI, которые имеют длину более 255 байтов, потому что некоторые старые клиенты или прокси-сервера не могут правильно поддерживать эти длины.

Hosted by uCoz