Opera URI note

From Offset
Jump to navigationJump to search

This page describes Opera 9 (from Yngve N. Pettersen on 3/17/06)

FILE URIs in Opera 9

File URIs have these form:

  file://<authority>/path/name["?" query]

If a URL is not on this form we convert it to this form as best we can, e.g. file:///path becomes file://localhost/path , although there may be holes in the heuristic.

Path may beging with a "<drive>:/" or "<drive>|/" sequence on sytems that supports it. Generally, path and name are supposed to follow the general rules of the operating system they are used on.

On windows (and other similar systems) "/" is converted to "\" and in the driveletter sequence "|" is converted to ":".

It is a little back and forth in v9 right now, about the query portion, but v8 and earlier supports the use of "?" to indicate a query, but will test for the existence of the path and name first, including the query portion.

I will probably include the query portion again in v9 TP, and probably change it to always assume the query part is not inlcuded in the filename.

The URI are assumed to be UTF-8 encoded.

Opera now forbids any use of file URIs from documents under other schemes (except where we are in full control of the document), in order to avoid security problems.

Certain forms of file://intranetserver/ base URIs are not supported, at least on windows, as we have not hooked into the APIs needed to use that functionality.

Opera's FTP url form

Opera's FTP url form is as follows:

  ftp://<authority>/path/[filename]*[";" parameter]

parameter is using the the normal name=value form.

The only parameter currently supported is "type", with the case insensitive "a" meaning the document is downloaded using the ASCII type (TYPE A), "i" meaning binary (TYPE I, this is the default), and "d" means it is assumed to be a directory (this is assumed if the path ends in a "/").

Opera currently tries to check if the target is a file or a directory by checking the size, the downloads the file (if it is a file) or changes to the directory (if it is a directory) and lists it. If we have problems checking the status of the file we try to CWD to the directory and either download the file or lists the directory.

Previous versions of Opera (pre 9) have assumed that when a login ID is used the browse root is in the home directory of the user, and that all navigation is relative to that directory, unless absolute FTP navigation has been selected. A workaround exists in which the path portion can begin with a "//" to indicate an absolute path (e.g ftp://<authority>//path ).

To move back to the home directory Opera has used a CWD command with out an argument, but in the past few years the emergence of Windows based personal FTP server have caused problems because they interprete that command as a "CWD ." command.

Opera v9 retrieves information about the current directory (PWD) and navigates using that information.

We do not presently have explicit UTF-8 support for FTP, but de-escapes the path-portion before sending commands, including any characters in UTF-8 form.