mirror of
https://github.com/moparisthebest/curl
synced 2025-02-28 09:21:50 -05:00
parent
7ba8020c46
commit
cd6b99ef32
103
docs/FAQ
103
docs/FAQ
@ -215,22 +215,22 @@ FAQ
|
||||
another tool that uses libcurl.
|
||||
|
||||
We do not add things to curl that other small and available tools already do
|
||||
very fine at the side. Curl's output is fine to pipe into another program or
|
||||
redirect to another file for the next program to interpret.
|
||||
very well at the side. Curl's output can be piped into another program or
|
||||
redirected to another file for the next program to interpret.
|
||||
|
||||
We focus on protocol related issues and improvements. If you wanna do more
|
||||
magic with the supported protocols than curl currently does, chances are big
|
||||
magic with the supported protocols than curl currently does, chances are good
|
||||
we will agree. If you wanna add more protocols, we may very well agree.
|
||||
|
||||
If you want someone else to make all the work while you wait for us to
|
||||
If you want someone else to do all the work while you wait for us to
|
||||
implement it for you, that is not a very friendly attitude. We spend a
|
||||
considerable time already on maintaining and developing curl. In order to
|
||||
get more out of us, you should consider trading in some of your time and
|
||||
efforts in return. Simply go to the GitHub repo which resides at
|
||||
effort in return. Simply go to the GitHub repo which resides at
|
||||
https://github.com/curl/curl, fork the project, and create pull requests
|
||||
with your proposed changes.
|
||||
|
||||
If you write the code, chances are bigger that it will get into curl faster.
|
||||
If you write the code, chances are better that it will get into curl faster.
|
||||
|
||||
1.5 Who makes curl?
|
||||
|
||||
@ -238,7 +238,7 @@ FAQ
|
||||
project leader and main developer, but other persons' submissions are
|
||||
important and crucial. Anyone can contribute and post their changes and
|
||||
improvements and have them inserted in the main sources (of course on the
|
||||
condition that developers agree on that the fixes are good).
|
||||
condition that developers agree that the fixes are good).
|
||||
|
||||
The full list of all contributors is found in the docs/THANKS file.
|
||||
|
||||
@ -247,9 +247,9 @@ FAQ
|
||||
1.6 What do you get for making curl?
|
||||
|
||||
Project cURL is entirely free and open. No person gets paid for developing
|
||||
curl on full time. We do this voluntarily, mostly on spare time.
|
||||
curl full time. We do this voluntarily, mostly in our spare time.
|
||||
Occasionally companies pay individual developers to work on curl, but that's
|
||||
up to each company and developer. It is not controlled by nor supervised in
|
||||
up to each company and developer. This is not controlled by nor supervised in
|
||||
any way by the project.
|
||||
|
||||
We still get help from companies. Haxx provides web site, bandwidth, mailing
|
||||
@ -260,11 +260,11 @@ FAQ
|
||||
do so in the future.
|
||||
|
||||
If you want to support our project, consider a donation or a banner-program
|
||||
or even better: by helping us coding, documenting, testing etc.
|
||||
or even better: by helping us with coding, documenting or testing etc.
|
||||
|
||||
1.7 What about CURL from curl.com?
|
||||
|
||||
During the summer 2001, curl.com was busy advertising their client-side
|
||||
During the summer of 2001, curl.com was busy advertising their client-side
|
||||
programming language for the web, named CURL.
|
||||
|
||||
We are in no way associated with curl.com or their CURL programming
|
||||
@ -277,7 +277,7 @@ FAQ
|
||||
We recognize that we will be living in parallel with curl.com and wish them
|
||||
every success.
|
||||
|
||||
1.8 I have a problem who do I mail?
|
||||
1.8 I have a problem whom do I mail?
|
||||
|
||||
Please do not mail any single individual unless you really need to. Keep
|
||||
curl-related questions on a suitable mailing list. All available mailing
|
||||
@ -285,8 +285,8 @@ FAQ
|
||||
https://curl.haxx.se/mail/
|
||||
|
||||
Keeping curl-related questions and discussions on mailing lists allows
|
||||
others to join in and help, to share their ideas, contribute their
|
||||
suggestions and spread their wisdom. Keeping discussions on public mailing
|
||||
others to join in and help, to share their ideas, to contribute their
|
||||
suggestions and to spread their wisdom. Keeping discussions on public mailing
|
||||
lists also allows for others to learn from this (both current and future
|
||||
users thanks to the web based archives of the mailing lists), thus saving us
|
||||
from having to repeat ourselves even more. Thanks for respecting this.
|
||||
@ -324,9 +324,9 @@ FAQ
|
||||
|
||||
1.11 Why don't you update ca-bundle.crt
|
||||
|
||||
The ca cert bundle that used to shipped with curl was very outdated and must
|
||||
be replaced with an up-to-date version by anyone who wants to verify
|
||||
peers. It is no longer provided by curl. The last curl release ever that
|
||||
The ca cert bundle that used to be shipped with curl was very outdated and
|
||||
must be replaced with an up-to-date version by anyone who wants to verify
|
||||
peers. It is no longer provided by curl. The last curl release that ever
|
||||
shipped a ca cert bundle was curl 7.18.0.
|
||||
|
||||
In the cURL project we've decided not to attempt to keep this file updated
|
||||
@ -347,7 +347,7 @@ FAQ
|
||||
1.12 I have a problem who can I chat with?
|
||||
|
||||
There's a bunch of friendly people hanging out in the #curl channel on the
|
||||
IRC network irc.freenode.net. If you're polite and nice, chances are big
|
||||
IRC network irc.freenode.net. If you're polite and nice, chances are good
|
||||
that you can get -- or provide -- help instantly.
|
||||
|
||||
1.13 curl's ECCN number?
|
||||
@ -430,7 +430,7 @@ FAQ
|
||||
2.1.2 only the libssl lib is missing
|
||||
|
||||
If all include files and the libcrypto lib is present, with only the
|
||||
libssl being missing according to configure, this is mostly likely because
|
||||
libssl being missing according to configure, this is most likely because
|
||||
a few functions are left out from the libssl.
|
||||
|
||||
If the function names missing include RSA or RSAREF you can be certain
|
||||
@ -467,7 +467,7 @@ FAQ
|
||||
|
||||
2.5 Install libcurl for both 32bit and 64bit?
|
||||
|
||||
In curl's configure procedure one of the regular include files get created
|
||||
In curl's configure procedure one of the regular include files gets created
|
||||
with platform specific information. The file 'curl/curlbuild.h' in the
|
||||
installed libcurl file tree is therefore somewhat tied to that particular
|
||||
platform.
|
||||
@ -520,11 +520,14 @@ FAQ
|
||||
|
||||
3.3 Why doesn't my posting using -F work?
|
||||
|
||||
You can't simply use -F or -d at your choice. The web server that will
|
||||
receive your post expects one of the formats. If the form you're trying to
|
||||
submit uses the type 'multipart/form-data', then and only then you must use
|
||||
the -F type. In all the most common cases, you should use -d which then
|
||||
causes a posting with the type 'application/x-www-form-urlencoded'.
|
||||
You can't arbitrarily use -F or -d, the choice between -F or -d depends on the
|
||||
HTTP operation you need curl to do and what the web server that will receive
|
||||
your post expects.
|
||||
|
||||
If the form you're trying to submit uses the type 'multipart/form-data', then
|
||||
and only then you must use the -F type. In all the most common cases, you
|
||||
should use -d which then causes a posting with the type
|
||||
'application/x-www-form-urlencoded'.
|
||||
|
||||
This is described in some detail in the MANUAL and TheArtOfHttpScripting
|
||||
documents, and if you don't understand it the first time, read it again
|
||||
@ -611,7 +614,7 @@ FAQ
|
||||
XML-RPC are all such ones. You can use -X to set custom requests and -H to
|
||||
set custom headers (or replace internally generated ones).
|
||||
|
||||
Using libcurl is of course just as fine and you'd just use the proper
|
||||
Using libcurl is of course just as good and you'd just use the proper
|
||||
library options to do the same.
|
||||
|
||||
3.11 How do I POST with a different Content-Type?
|
||||
@ -631,7 +634,7 @@ FAQ
|
||||
There is one exception to this rule, and that is if you can "tunnel through"
|
||||
the given HTTP proxy. Proxy tunneling is enabled with a special option (-p)
|
||||
and is generally not available as proxy admins usually disable tunneling to
|
||||
other ports than 443 (which is used for HTTPS access through proxies).
|
||||
ports other than 443 (which is used for HTTPS access through proxies).
|
||||
|
||||
3.13 Why does my single/double quotes fail?
|
||||
|
||||
@ -650,7 +653,7 @@ FAQ
|
||||
Windows/DOS prompts I believe you're forced to use double (") quotes.
|
||||
|
||||
Please study the documentation for your particular environment. Examples in
|
||||
the curl docs will use a mix of both these ones as shown above. You must
|
||||
the curl docs will use a mix of both of these as shown above. You must
|
||||
adjust them to work in your environment.
|
||||
|
||||
Remember that curl works and runs on more operating systems than most single
|
||||
@ -685,7 +688,7 @@ FAQ
|
||||
No. curl itself has no code that performs recursive operations, such as
|
||||
those performed by wget and similar tools.
|
||||
|
||||
There exist wrapper scripts with that functionality (for example the
|
||||
There exists wrapper scripts with that functionality (for example the
|
||||
curlmirror perl script), and you can write programs based on libcurl to do
|
||||
it, but the command line tool curl itself cannot.
|
||||
|
||||
@ -696,9 +699,9 @@ FAQ
|
||||
|
||||
CLIENT CERTIFICATE
|
||||
|
||||
The server you communicate may require that you can provide this in order to
|
||||
prove that you actually are who you claim to be. If the server doesn't
|
||||
require this, you don't need a client certificate.
|
||||
The server you communicate with may require that you can provide this in
|
||||
order to prove that you actually are who you claim to be. If the server
|
||||
doesn't require this, you don't need a client certificate.
|
||||
|
||||
A client certificate is always used together with a private key, and the
|
||||
private key has a pass phrase that protects it.
|
||||
@ -859,14 +862,14 @@ FAQ
|
||||
|
||||
4.3 How can I use {, }, [ or ] to specify multiple URLs?
|
||||
|
||||
Because those letters have a special meaning to the shell, and to be used in
|
||||
Because those letters have a special meaning to the shell, to be used in
|
||||
a URL specified to curl you must quote them.
|
||||
|
||||
An example that downloads two URLs (sequentially) would do:
|
||||
An example that downloads two URLs (sequentially) would be:
|
||||
|
||||
curl '{curl,www}.haxx.se'
|
||||
|
||||
To be able to use those letters as actual parts of the URL (without using
|
||||
To be able to use those characters as actual parts of the URL (without using
|
||||
them for the curl URL "globbing" system), use the -g/--globoff option:
|
||||
|
||||
curl -g 'www.site.com/weirdname[].html'
|
||||
@ -1025,7 +1028,7 @@ FAQ
|
||||
|
||||
4.14 Redirects work in browser but not with curl!
|
||||
|
||||
curl supports HTTP redirects fine (see item 3.8). Browsers generally support
|
||||
curl supports HTTP redirects well (see item 3.8). Browsers generally support
|
||||
at least two other ways to perform redirects that curl does not:
|
||||
|
||||
Meta tags. You can write a HTML tag that will cause the browser to redirect
|
||||
@ -1049,7 +1052,7 @@ FAQ
|
||||
|
||||
To use explicit FTPS, you use a FTP:// URL and the --ftp-ssl option (or one
|
||||
of its related flavours). This is the most common method, and the one
|
||||
mandated by RFC4217. This kind of connection then of course uses the
|
||||
mandated by RFC4217. This kind of connection will then of course use the
|
||||
standard FTP port 21 by default.
|
||||
|
||||
4.16 My HTTP POST or PUT requests are slow!
|
||||
@ -1057,7 +1060,7 @@ FAQ
|
||||
libcurl makes all POST and PUT requests (except for POST requests with a
|
||||
very tiny request body) use the "Expect: 100-continue" header. This header
|
||||
allows the server to deny the operation early so that libcurl can bail out
|
||||
already before having to send any data. This is useful in authentication
|
||||
before having to send any data. This is useful in authentication
|
||||
cases and others.
|
||||
|
||||
However, many servers don't implement the Expect: stuff properly and if the
|
||||
@ -1148,7 +1151,7 @@ FAQ
|
||||
When doing HTTP transfers, curl will perform exactly what you're asking it
|
||||
to do and if successful it will not return an error. You can use curl to
|
||||
test your web server's "file not found" page (that gets 404 back), you can
|
||||
use it to check your authentication protected web pages (that get a 401
|
||||
use it to check your authentication protected web pages (that gets a 401
|
||||
back) and so on.
|
||||
|
||||
The specific HTTP response code does not constitute a problem or error for
|
||||
@ -1163,7 +1166,7 @@ FAQ
|
||||
libcurl speak).
|
||||
|
||||
You can also use the -w option and the variable %{response_code} to extract
|
||||
the exact response code that was return in the response.
|
||||
the exact response code that was returned in the response.
|
||||
|
||||
4.21 Why is there a HTTP/1.1 in my HTTP/2 request?
|
||||
|
||||
@ -1173,8 +1176,8 @@ FAQ
|
||||
The reason for this is that we first generate the request to send using the
|
||||
old 1.1 style and show that request in the verbose output, and then we
|
||||
convert it over to the binary header-compressed HTTP/2 style. The actual
|
||||
"1.1" part from that request is then not actually used in the transfer. The
|
||||
binary HTTP/2 headers are not human readable.
|
||||
"1.1" part from that request is then not actually used in the transfer.
|
||||
The binary HTTP/2 headers are not human readable.
|
||||
|
||||
5. libcurl Issues
|
||||
|
||||
@ -1256,10 +1259,10 @@ FAQ
|
||||
libcurl will reuse connections for all transfers that are made using the
|
||||
same libcurl handle.
|
||||
|
||||
When you use the easy interface, the connection cache is kept within the
|
||||
easy handle. If you instead use the multi interface, the connection cache
|
||||
will be kept within the multi handle and will be shared among all the easy
|
||||
handles that are used within the same multi handle.
|
||||
When you use the easy interface the connection cache is kept within the easy
|
||||
handle. If you instead use the multi interface, the connection cache will be
|
||||
kept within the multi handle and will be shared among all the easy handles
|
||||
that are used within the same multi handle.
|
||||
|
||||
5.7 Link errors when building libcurl on Windows!
|
||||
|
||||
@ -1318,8 +1321,8 @@ FAQ
|
||||
you want to change name resolver function you must rebuild libcurl and tell
|
||||
it to use a different function.
|
||||
|
||||
- The non-IPv6 resolver that can use one out of four host name resolve calls
|
||||
(depending on what your system supports):
|
||||
- The non-IPv6 resolver that can use one of four different host name resolve
|
||||
calls (depending on what your system supports):
|
||||
|
||||
A - gethostbyname()
|
||||
B - gethostbyname_r() with 3 arguments
|
||||
@ -1353,7 +1356,7 @@ FAQ
|
||||
5.12 Can I make libcurl fake or hide my real IP address?
|
||||
|
||||
No. libcurl operates on a higher level. Besides, faking IP address would
|
||||
imply sending IP packet with a made-up source address, and then you normally
|
||||
imply sending IP packets with a made-up source address, and then you normally
|
||||
get a problem with receiving the packet sent back as they would then not be
|
||||
routed to you!
|
||||
|
||||
@ -1383,7 +1386,7 @@ FAQ
|
||||
|
||||
libcurl is a C library, it doesn't know anything about C++ member functions.
|
||||
|
||||
You can overcome this "limitation" with a relative ease using a static
|
||||
You can overcome this "limitation" with relative ease using a static
|
||||
member function that is passed a pointer to the class:
|
||||
|
||||
// f is the pointer to your object.
|
||||
|
@ -38,17 +38,17 @@ MAIL ETIQUETTE
|
||||
Each mailing list is targeted to a specific set of users and subjects,
|
||||
please use the one or the ones that suit you the most.
|
||||
|
||||
Each mailing list have hundreds up to thousands of readers, meaning that
|
||||
each mail sent will be received and read by a very large amount of people.
|
||||
Each mailing list has hundreds up to thousands of readers, meaning that
|
||||
each mail sent will be received and read by a very large number of people.
|
||||
People from various cultures, regions, religions and continents.
|
||||
|
||||
1.2 Netiquette
|
||||
|
||||
Netiquette is a common name for how to behave on the internet. Of course, in
|
||||
Netiquette is a common term for how to behave on the internet. Of course, in
|
||||
each particular group and subculture there will be differences in what is
|
||||
acceptable and what is considered good manners.
|
||||
|
||||
This document outlines what we in the curl project considers to be good
|
||||
This document outlines what we in the curl project consider to be good
|
||||
etiquette, and primarily this focus on how to behave on and how to use our
|
||||
mailing lists.
|
||||
|
||||
@ -56,7 +56,7 @@ MAIL ETIQUETTE
|
||||
|
||||
Many people send one question to one person. One person gets many mails, and
|
||||
there is only one person who can give you a reply. The question may be
|
||||
something that other people are also wanting to ask. These other people have
|
||||
something that other people would also like to ask. These other people have
|
||||
no way to read the reply, but to ask the one person the question. The one
|
||||
person consequently gets overloaded with mail.
|
||||
|
||||
@ -79,8 +79,8 @@ MAIL ETIQUETTE
|
||||
1.5 Moderation of new posters
|
||||
|
||||
Several of the curl mailing lists automatically make all posts from new
|
||||
subscribers require moderation. This means that after you've subscribed and
|
||||
send your first mail to a list, that mail will not be let through to the
|
||||
subscribers be moderated. This means that after you've subscribed and
|
||||
sent your first mail to a list, that mail will not be let through to the
|
||||
list until a mailing list administrator has verified that it is OK and
|
||||
permits it to get posted.
|
||||
|
||||
@ -104,9 +104,9 @@ MAIL ETIQUETTE
|
||||
messages"
|
||||
|
||||
No matter what, we NEVER EVER respond to trolls or spammers on the list. If
|
||||
you believe the list admin should do something particular, contact him/her
|
||||
off-list. The subject will be taken care of as good as possible to prevent
|
||||
repeated offenses, but responding on the list to such messages never lead to
|
||||
you believe the list admin should do something in particular, contact him/her
|
||||
off-list. The subject will be taken care of as much as possible to prevent
|
||||
repeated offenses, but responding on the list to such messages never leads to
|
||||
anything good and only puts the light even more on the offender: which was
|
||||
the entire purpose of it getting sent to the list in the first place.
|
||||
|
||||
@ -114,16 +114,16 @@ MAIL ETIQUETTE
|
||||
|
||||
1.7 How to unsubscribe
|
||||
|
||||
You unsubscribe the same way you subscribed in the first place. You go to
|
||||
the page for the particular mailing list you're subscribed to and you enter
|
||||
You can unsubscribe the same way you subscribed in the first place. You go
|
||||
to the page for the particular mailing list you're subscribed to and you enter
|
||||
your email address and password and press the unsubscribe button.
|
||||
|
||||
Also, this information is included in the headers of every mail that is sent
|
||||
out to all curl related mailing lists and there's a footer in each mail that
|
||||
links to the "admin" page on which you can unsubscribe and change other
|
||||
options.
|
||||
Also, the instructions to unsubscribe are included in the headers of every
|
||||
mail that is sent out to all curl related mailing lists and there's a footer
|
||||
in each mail that links to the "admin" page on which you can unsubscribe and
|
||||
change other options.
|
||||
|
||||
You NEVER EVER email the mailing list requesting someone else to get you off
|
||||
You NEVER EVER email the mailing list requesting someone else to take you off
|
||||
the list.
|
||||
|
||||
1.8 I posted, now what?
|
||||
@ -132,35 +132,35 @@ MAIL ETIQUETTE
|
||||
send the email, your post will just be silently discarded.
|
||||
|
||||
If you posted for the first time to the mailing list, you first need to wait
|
||||
for an administrator to allow your email to go through. This normally
|
||||
for an administrator to allow your email to go through (moderated). This normally
|
||||
happens very quickly but in case we're asleep, you may have to wait a few
|
||||
hours.
|
||||
|
||||
Once your email goes through it is sent out to several hundred or even
|
||||
thousand recipients. Your email may cover an area that not that many people
|
||||
thousands of recipients. Your email may cover an area that not that many people
|
||||
know about or are interested in. Or possibly the person who knows about it
|
||||
is on vacation or under a very heavy work load right now. You have to wait
|
||||
for a response and you must not expect to get a response at all, but
|
||||
is on vacation or under a very heavy work load right now. You may have to wait
|
||||
for a response and you should not expect to get a response at all, but
|
||||
hopefully you get an answer within a couple of days.
|
||||
|
||||
You do yourself and all of us a service when you include as many details as
|
||||
possible already in your first email. Mention your operating system and
|
||||
environment. Tell us which curl version you're using and tell us what you
|
||||
did, what happened and what you expected would happen. Preferably, show us
|
||||
what you did in details enough to allow others to help point out the problem
|
||||
or repeat the same steps in their places.
|
||||
what you did with details enough to allow others to help point out the problem
|
||||
or repeat the same steps in their locations.
|
||||
|
||||
Failing to include details will only delay responses and make people respond
|
||||
and ask for the details and you have to send a follow-up email that includes
|
||||
them.
|
||||
and ask for more details and you will have to send a follow-up email that
|
||||
includes them.
|
||||
|
||||
Expect the responses to primarily help YOU debug the issue, or ask you
|
||||
Expect the responses to primarily help YOU debug the issue, or ask YOU
|
||||
questions that can lead you or others towards a solution or explanation to
|
||||
whatever you experience.
|
||||
|
||||
If you are a repeat offender to the guidelines outlined in this document,
|
||||
chances are that people will ignore you at will and your chances to get
|
||||
responses will greatly diminish.
|
||||
responses in the future will greatly diminish.
|
||||
|
||||
|
||||
2. Sending mail
|
||||
@ -183,7 +183,7 @@ MAIL ETIQUETTE
|
||||
|
||||
We're actively discouraging replying back to the single person by setting
|
||||
the Reply-To: field in outgoing mails back to the mailing list address,
|
||||
making it harder for people to mail the author only by mistake.
|
||||
making it harder for people to mail the author directly, if only by mistake.
|
||||
|
||||
2.3 Use a Sensible Subject
|
||||
|
||||
@ -198,7 +198,7 @@ MAIL ETIQUETTE
|
||||
mail conversation below. It forces users to read the mail in a backwards
|
||||
order to properly understand it.
|
||||
|
||||
This is why top posting is so bad:
|
||||
This is why top posting is so bad (in top posting order):
|
||||
|
||||
A: Because it messes up the order in which people normally read text.
|
||||
Q: Why is top-posting such a bad thing?
|
||||
@ -254,7 +254,7 @@ MAIL ETIQUETTE
|
||||
If you are the one who asks, please consider responding once more in case
|
||||
one of the hints was what solved your problems. The guys who write answers
|
||||
feel good to know that they provided a good answer and that you fixed the
|
||||
problem. Far too often, the person who asked the question is never heard of
|
||||
problem. Far too often, the person who asked the question is never heard from
|
||||
again, and we never get to know if he/she is gone because the problem was
|
||||
solved or perhaps because the problem was unsolvable!
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user