On 05/07/2012 11:11 PM, anita.sivaku...@wipro.com wrote:

> I tried the following request but it returned saying it is an invalid request.
> 
> In Foo:
> PUT http://myserver/file1.html HTTP/1.1
> HOST:localhost
> Accept:*/*
> Content-Type:text/html
> 
> Where file1.html is present in myserver (apache).
> 
> I get the error as: 
> HTTP/1.0 400 Bad Request
> Server: squid/3.1.16
> Mime-Version: 1.0
> Date: Tue, 08 May 2012 10:29:51 GMT
> Content-Type: text/html
> Content-Length: 3192
> X-Squid-Error: ERR_INVALID_URL 0
> Vary: Accept-Language
> Content-Language: en
> X-Cache: MISS from squid.packet-pushers.net
> Via: 1.0 squid.packet-pushers.net (squid/3.1.16)
> Connection: close
> 
> Am I missing something in how to write a PUT request? 

I am not sure what you meant by "In Foo" but your PUT request quoted
above is missing a body. See RFC 2616 or google for PUT request examples.

If you are using squidclient, then according to documentation, the
command to send a PUT request containing Foo.txt file to the origin
server located at Bar URL is

   squidclient -P Foo.txt Bar

However, it is not clear what a PUT request gives you since Squid cannot
cache PUT request bodies.


HTH,

Alex.


> -----Original Message-----
> From: Alex Rousskov [mailto:rouss...@measurement-factory.com] 
> Sent: 07 May 2012 21:19
> To: Anita Sivakumar (WT01 - GMT-Telecom Equipment)
> Cc: squid-dev@squid-cache.org
> Subject: Re: adding content to the cache
> 
> On 05/07/2012 05:35 AM, anita wrote:
>>> It sends an HTTP PUT request to Squid and reads the response. The PUT 
>>> request body is taken from the named file. You most likely do not need 
>>> this because you want to GET content from the fake server, and not PUT 
>>> content to the fake server. Squid does not cache request bodies. 
> 
> 
>> Just came across this post. Wondering how to use this feature for
>> squidclient.
>> Can we simply do a squidclient -P http://server/filename.html ?
>> Where the filename.html is the actual object that I would need to be pushed
>> into the squid cache?
> 
> 
> IIRC, "squidclient -P Foo" specifies that the PUT request body should
> come from a file named Foo. Squid does not cache request bodies.
> 
> Squid caches responses. If you want Squid to cache the contents of file
> Foo, you have to make Foo available on some web server. It is relatively
> easy to set up a "fake" server that responds with Foo to all HTTP
> requests (and runs on the same host as Squid), but you can also use
> Apache httpd or another full-blown origin server.
> 
> With Rock Store (v3.2 and up), it is also possible to add something to
> the Squid disk cache without using HTTP (because the cache index and
> queues are stored in shared memory accessible to any process with enough
> permissions). However, the above approach with a fake server is easier
> if you just want to cache a single file.
> 
> Please note that I do not really understand all the complexities of the
> overall problem you are trying to solve (the description of the problem
> that you posted earlier was too convoluted for me) so I cannot recommend
> a good solution or evaluate whether the above is the right path towards
> that solution. I am just trying to answer a specific question instead.
> 
> 
> HTH,
> 
> Alex.
> 
> Please do not print this email unless it is absolutely necessary. 
> 
> The information contained in this electronic message and any attachments to 
> this message are intended for the exclusive use of the addressee(s) and may 
> contain proprietary, confidential or privileged information. If you are not 
> the intended recipient, you should not disseminate, distribute or copy this 
> e-mail. Please notify the sender immediately and destroy all copies of this 
> message and any attachments. 
> 
> WARNING: Computer viruses can be transmitted via email. The recipient should 
> check this email and any attachments for the presence of viruses. The company 
> accepts no liability for any damage caused by any virus transmitted by this 
> email. 
> 
> www.wipro.com

Reply via email to