[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

HTTP todo projects



-----BEGIN PGP SIGNED MESSAGE-----

Hi,
I have finaly got my selfe to sit down and make up a list of projects that
is needed to get the http implementation ready. Here they are:

Project name     :  Character Set Filters
Description      :  A set of filters that can convert data between
                    diffrent character sets.
Category         :  Network/HTTP
Contact          :  Hakan Ardo <hakan@debian.org>
Entry Date       :  Fri Jun 20 1997
Priority         :  3
Comments         :  

Project name     :  Content-Encoding filters
Description      :  A set of filters that can decode the data based on
                    the Content-Encoding headder field. The HTTP/1.1 RFC
                    specifies two: gzip and compress.
Category         :  Network/HTTP
Contact          :  Hakan Ardo <hakan@debian.or>
Entry Date       :  Fri Jun 20 1997
Priority         :  2
Comments         :  

Project name     :  Transfer-Enoding filters
Description      :  A set of filters that can decode the data based on
                    the Transfer-Encoding headder field. The HTTP/1.1 RFC
                    defines one: chunked. There is a preliminary
                    implementation of it in filtermanager/chunked.cc, that
                    needs to be either thurily tested or maby even
                    rewritten
Category         :  Network/HTTP
Contact          :  Hakan Ardo <hakan@debian.org>
Entry Date       :  Fri Jun 20 1997
Priority         :  2
Comments         :  

Project name     :  User Configurable HTTP Requests
Description      :  Most of the headers in the request contains data that
                    the user is suposed to specify in the configuration of
                    mnemonic. All of those headders are optionall and the
                    user should ba able to enable/disable them all. The
                    headders I am talking about is:
                      Accept
                      Accept-Charset (A list of availible charset filters
                                      should be used as default)
                      Accept-Encoding (Same as above)
                      Accept-Language
                      From
                      Max-Forwards (Should be disabled as default)
Category         :  Network/HTTP
Contact          :  Hakan Ardo <hakan@debian.org>
Entry Date       :  Fri Jun 20 1997
Priority         :  2
Comments         :  

Project name     :  HTTP Conditionally Downloads
Description      :  To optimize the caching procedure we need to use the
                    featurs of the http that allow us to download half a
                    file, or setting up a condition whatever we want the
                    file or not, and let the server decide if we need it.
                    The headder field used to to that is:
                      Cache-Control
                      ETag
                      Expires (Don't know if this can be of any use here)
                      If-Modified-Since
                      If-Match
                      If-None-Match
                      If-Range
                      If-Unmodified-Since (Now this one seems like a realy
                                           unusable feature :)
                      Range
                      Vary
Category         :  Network/HTTP
Contact          :  Hakan Ardo <hakan@debian.org>
Entry Date       :  Fri Jun 20 1997
Priority         :  3
Comments         :  

Project name     :  HTTP Access Authentication
Description      :  The client might be asked to authenticate itselfe to
                    get access to a server or a cache. The HTTP/1.1
                    specifes one way of doing that: "basic", and refers to
                    another definition (in RFC 2069): "digest". For this
                    the following headderfields are neede:
                      Authorization
                      WWW-Authenticate
                      Proxy-Authenticate
                      Proxy-Authorization
Category         :  Network/HTTP
Contact          :  Hakan Ardo <hakan@debian.org>
Entry Date       :  Fri Jun 20 1997
Priority         :  2
Comments         :  

Project name     :  HTTP Hooks
Description      :  We need a method for the filters to hook themselfe to
                    specifik headders, and to make sure that they are
                    placed in the stream in the right order. Preferable a
                    filter should be able to hook itselfe to any headder,
                    but at least the following is important:
                      Content-Encoding
                      Transfer-Encoding
                      Content-Type  (the character set might be defined
                                     here)
Category         :  Network/HTTP
Contact          :  Hakan Ardo <hakan@debian.org>
Entry Date       :  Fri Jun 20 1997
Priority         :  1
Comments         :  

Project name     :  PUT/POST method
Description      :  The PUT/POST methods must be implemented!
Category         :  Network/HTTP
Author           :  Hakan Ardo <hakan@debian.org>
Entry Date       :  Fri Jun 20 1997
Priority         :  1
Comments         :  

Project name     :  Other HTTP methods
Description      :  There are a few other methods that we might want to
                    support, like (OPTIONS, HEAD, DELETE, TRACE)
Category         :  Network/HTTP
Author           :  Hakan Ardo <hakan@debian.org>
Entry Date       :  Fri Jun 20 1997
Priority         :  3
Comments         :  

Project name     :  Recover from HTTP server errors
Description      :  Sometimes a server returns an error message containing
                    info on how the requested object can be retried, e.g.
                    a redirect. The following cases should be handeled:
                      3xx Redirection (301-305)
                      400 Bad Request (try to use an 0.9 request instead, 
                                       or mabe send a bug repport)
                      405 Method Not Allowed  (Convert PUT <=> POST <=> GET
                                               and mabe HEAD => GET)
                      406 Not Acceptable (Ask the user to change the
                                          Accept headders)
                      408 Request Timeout (Repeate the request)
                      411 Length Required (Add a length headder to the
                                           request)
                      413 Request Entity Too Large (Minimize the request)
                      414 Request-URI Too Long (Convert GET => POST)
                      501 Not Implemented (treet as 405)
                      503 Service Unavailable (Check Retry-After headder
                                               and retry)
                      505 HTTP Version Not Supported (Try a 0.9/1.0 
                                                      request)
                    The headders we should inspect here is:
                      Date
                      Location
                      Retry-After
                    I Have started the implementation of this, check out
                    the code in netmanager/http/HTTPResponse.cc too se
                    what more is needed.
Category         :  Network/HTTP
Author           :  Hakan Ardo <hakan@debian.org>
Entry Date       :  Fri Jun 20 1997
Priority         :  1 (at least the simple redirection part)
Comments         :  

Project name     :  HTTP Multiple Choices
Description      :  A HTTP server might give us several alternatives to
                    chose from when we ask for a object. In some cases we
                    should be able to handle the chosing automatically,
                    and in some cases we need to ask the user. This is
                    initiated by the server by a "300 Multiple Choices"
                    responsecode.
Category         :  Network/HTTP
Author           :  Hakan Ardo <hakan@debian.org>
Entry Date       :  Fri Jun 20 1997
Priority         :  3
Comments         :  

Project name     :  HTTP Multipart Response
Description      :  A server might reply with more than one object. For
                    example, you are supposed to be able to create a
                    animation by sending several images as a response
                    to a request. Or to have a page updating itselfe by
                    continiously (or in intervalls) sending a new version
                    of the page. (This will cause problems if we have
                    requested more than one object from the same
                    connection using the pipelining feature of HTTP)
Category         :  Network/HTTP
Author           :  Hakan Ardo <hakan@debian.org>
Entry Date       :  Fri Jun 20 1997
Priority         :  3
Comments         :  

Project name     :  HTTP MD5 Checksum
Description      :  A Response from a server might contain a "Content-MD5"
                    header with a MD5 checksum for the file returned.
                    Thisone should be check and we should somehow indicate
                    to the user that the file has been checked.
Category         :  Network/HTTP
Author           :  Hakan Ardo <hakan@debian.org>
Entry Date       :  Fri Jun 20 1997
Priority         :  3
Comments         :  

Project name     :  HTTP Warning
Description      :  A Response from a server might contain a "Warning"
                    header that we might want to check out.
Category         :  Network/HTTP
Author           :  Hakan Ardo <hakan@debian.org>
Entry Date       :  Fri Jun 20 1997
Priority         :  3
Comments         :  

I alos have a project that is curently going on:

Project name     :  Persistent Connections
Description      :  We need to optimize the handling of the connections so
                    that when we have several connection open to the same
                    server a new request will be sent to the right one at
                    the right time. We also has to make sure to be
                    compatible with old 1.0 servers.
Category         :  Network
Author           :  Hakan Ardo <hakan@debian.org>, 
                    Jimen Ching <jching@flex.com>
Status           :  Designing
Entry Date       :  Fri Jun 14 1997
Publication Aate :  Fri Jun 20 1997
Priority         :  1
Comments         :  


OK, I think that should make an almost complete HTTP/1.1 implementation! I
have probably missed something, so if you find it please let me know :)

		
- ---------------------------------------------------------------
 Name:        Hakan Ardo
 E-Mail:      hakan@debian.org
 WWW:         http://www.ub2.lu.se/~hakan/sig.html
 Public Key:  Try "finger hakan@master.debian.org"
 Fingerprint: E9 81 FD 90 53 5C E9 3E  3D ED 57 15 1B 7E 29 F3
 Interests:   WWW, Programming, 3D graphics

 Thought for the day: As long as one understands, the
 spelling does not matter :-)
- ---------------------------------------------------------------


-----BEGIN PGP SIGNATURE-----
Version: 2.6.3i
Charset: noconv

iQCVAwUBM6qd596dx9igIm71AQH9kQP9GUc/0eNmxK54f1ahhqpqZywmDvCEUv0G
9/W+bp7wEOGavS+F23oRonJEmmHO0G73IiU1mKjiahmMPkq/btt0irci9fc1btqH
eqBL7H4uxflY4wwBHd/CL3JUNJorcVTx6c8RwLa86LjY9nQfLUHzkwqR7WSf3mWU
qssTeILN/6c=
=eL6S
-----END PGP SIGNATURE-----