curl/lib
2002-09-03 11:26:07 +00:00
..
.cvsignore ignore generated files 2002-08-08 23:11:26 +00:00
arpa_telnet.h added disable-[protocol] support, largely provided by Miklos Nemeth 2002-06-11 11:13:01 +00:00
base64.c
base64.h
ca-bundle.crt ca bundle to use 2002-09-02 22:29:48 +00:00
ca-bundle.h.in ca-bundle stuff for configure and generated header file 2002-08-30 07:50:59 +00:00
config-mac.h
config-riscos.h
config-vms.h HAVE_SIGSETJMP 2002-06-12 17:56:22 +00:00
config-win32.h Andrew Francis removed the need for/use of MSVC pragmas 2002-08-26 17:20:29 +00:00
connect.c Andrew Francis removed the need for/use of MSVC pragmas 2002-08-26 17:20:29 +00:00
connect.h Initial fix to make the multi interface return control while waiting for 2002-08-12 09:43:20 +00:00
content_encoding.c James Gallagher's Content-Encoding work 2002-09-02 22:31:18 +00:00
content_encoding.h James Gallagher's Content-Encoding work 2002-09-02 22:31:18 +00:00
cookie.c properly skip white spaces on Set-Cookie: header lines 2002-07-29 22:22:49 +00:00
cookie.h
curllib.dsp Hanno L. Kranzhoff fixed them 2002-06-14 09:36:09 +00:00
curllib.dsw Hanno L. Kranzhoff fixed them 2002-06-14 09:36:09 +00:00
dict.c
dict.h added disable-[protocol] support, largely provided by Miklos Nemeth 2002-06-11 11:13:01 +00:00
dllinit.c prevent compiler warnings 2002-08-20 11:43:31 +00:00
easy.c
escape.c ignore '+' in URLs, generate only %-codes 2002-06-26 07:15:31 +00:00
escape.h
file.c added disable-[protocol] support, largely provided by Miklos Nemeth 2002-06-11 11:13:01 +00:00
file.h added disable-[protocol] support, largely provided by Miklos Nemeth 2002-06-11 11:13:01 +00:00
formdata.c Chris Combes added CURLFORM_BUFFER, CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH 2002-06-12 21:40:59 +00:00
formdata.h Chris Combes added CURLFORM_BUFFER, CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH 2002-06-12 21:40:59 +00:00
ftp.c SSL_INSECURE support and usage added 2002-08-26 23:13:25 +00:00
ftp.h Initial fix to make the multi interface return control while waiting for 2002-08-12 09:43:20 +00:00
getdate.c
getdate.h
getdate.y
getenv.c
getinfo.c
getinfo.h
getpass.c use stderr to present the prompt to, make sure to close the fopen()ed 2002-07-29 14:15:14 +00:00
getpass.h
hash.c
hash.h
hostip.c prevent compiler warning 2002-08-30 11:10:50 +00:00
hostip.h
http_chunks.c James Gallagher's Content-Encoding work 2002-09-02 22:31:18 +00:00
http_chunks.h James Gallagher's Content-Encoding work 2002-09-02 22:31:18 +00:00
http.c James Gallagher's Content-Encoding work 2002-09-02 22:31:18 +00:00
http.h added disable-[protocol] support, largely provided by Miklos Nemeth 2002-06-11 11:13:01 +00:00
if2ip.c
if2ip.h
inet_ntoa_r.h
krb4.c added disable-[protocol] support, largely provided by Miklos Nemeth 2002-06-11 11:13:01 +00:00
krb4.h
ldap.c kris@freebsd.org fixed a bad format string 2002-06-12 07:45:11 +00:00
ldap.h added disable-[protocol] support, largely provided by Miklos Nemeth 2002-06-11 11:13:01 +00:00
libcurl.def Added multi interface functions to DLL definitions. 2002-08-03 16:38:28 +00:00
llist.c
llist.h
Makefile.am fixed the dist-hook and added the missing header file 2002-09-03 11:26:07 +00:00
Makefile.b32
Makefile.b32.resp
Makefile.m32 Added multi.[co] to the build 2002-07-29 11:07:26 +00:00
Makefile.riscos
Makefile.vc6 link with winmm.lib too 2002-07-29 14:20:53 +00:00
memdebug.c
memdebug.h
mprintf.c
multi.c Initial fix to make the multi interface return control while waiting for 2002-08-12 09:43:20 +00:00
netrc.c
netrc.h
progress.c Andrew Francis removed the need for/use of MSVC pragmas 2002-08-26 17:20:29 +00:00
progress.h
README.encoding James Gallagher's Content-Encoding work 2002-09-02 22:31:18 +00:00
security.c added disable-[protocol] support, largely provided by Miklos Nemeth 2002-06-11 11:13:01 +00:00
security.h
sendf.c Markus Oberhumer improved an out-of-memory check 2002-08-22 19:38:17 +00:00
sendf.h
setup.h added disable-[protocol] support, largely provided by Miklos Nemeth 2002-06-11 11:13:01 +00:00
share.c Sterling Hughes brings the share interface 2002-08-13 14:20:47 +00:00
share.h Sterling Hughes brings the share interface 2002-08-13 14:20:47 +00:00
speedcheck.c copyright string (year) update 2002-03-19 07:54:55 +00:00
speedcheck.h
ssluse.c if verifypeer is enabled but nether CAfile nor CApath is, then don't try 2002-08-30 12:07:42 +00:00
ssluse.h
strequal.c
strequal.h
strtok.c
strtok.h
telnet.c added disable-[protocol] support, largely provided by Miklos Nemeth 2002-06-11 11:13:01 +00:00
telnet.h added disable-[protocol] support, largely provided by Miklos Nemeth 2002-06-11 11:13:01 +00:00
timeval.c T. Bharath fixed his mm lib timer resolution fix 2002-06-26 06:47:18 +00:00
timeval.h
transfer.c James Gallagher's Content-Encoding work 2002-09-02 22:31:18 +00:00
transfer.h
url.c James Gallagher's Content-Encoding work 2002-09-02 22:31:18 +00:00
url.h Initial fix to make the multi interface return control while waiting for 2002-08-12 09:43:20 +00:00
urldata.h James Gallagher's Content-Encoding work 2002-09-02 22:31:18 +00:00
version.c adjusted to more HTTP-strict version strings and to offer LIBZ info 2002-09-02 21:59:31 +00:00

		    Content Encoding Support for libcurl

* About content encodings: 

HTTP/1.1 [RFC 2616] specifies that a client may request that a server encode
its response. This is usually used to compress a response using one of a set
of commonly available compression techniques. These schemes are `deflate'
(the zlib algorithm), `gzip' and `compress' [sec 3.5, RFC 2616]. A client
requests that the sever perform an encoding by including an Accept-Encoding
header in the request document. The value of the header should be one of the
recognized tokens `deflate', ... (there's a way to register new
schemes/tokens, see sec 3.5 of the spec). A server MAY honor the client's
encoding request. When a response is encoded, the server includes a
Content-Encoding header in the response. The value of the Content-Encoding
header indicates which scheme was used to encode the data.

A client may tell a server that it can understand several different encoding
schemes. In this case the server may choose any one of those and use it to
encode the response (indicating which one using the Content-Encoding header).
It's also possible for a client to attach priorities to different schemes so
that the server knows which it prefers. See sec 14.3 of RFC 2616 for more
information on the Accept-Encoding header.

* Current support for content encoding:

I added support for the 'deflate' content encoding to both libcurl and curl.
Both regular and chunked transfers should work although I've tested only the
former. The library zlib is required for this feature. Places where I
modified the source code are commented and typically include my initials and
the date (e.g., 08/29/02 jhrg).

* The libcurl interface:

To cause libcurl to request a content encoding use: 

    curl_easy_setopt(curl, CURLOPT_ENCODING, <string>) 

where <string> is the intended value of the Accept-Encoding header.

Currently, libcurl only understands how to process responses that use the
`deflate' Content-Encoding, so the only value for CURLOPT_ENCODING that will
work (besides "identity," which does nothing) is "deflate." If a response is
encoded using either the `gzip' or `compress' methods, libcurl will return an
error indicating that the response could not be decoded. If <string> is null
or empty no Accept-Encoding header is generated.

* The curl interface:

Use the --compressed option with curl to cause it to ask servers to compress
responses using deflate. 

James Gallagher <jgallagher@gso.uri.edu>