Dec 13, 2013

how proxy works

its important knowing about how proxy works. proxy is intermediary machine to handle request from client to server. It can be as filter, or as cache, or redirecting, or protecting, etc.

how proxy works

How to test proxy

the simplest testing is by telneting the port of proxy server, let say, i have installed squid on my laptop and running on port 3128. So: i can test my proxy by :

febru@sevilla:~$ telnet localhost 3128
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET http://google.com HTTP/1.1

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Thu, 12 Dec 2013 05:35:29 GMT
Expires: Sat, 11 Jan 2014 05:35:29 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic
Age: 56263
X-Cache: HIT from sevilla
X-Cache-Lookup: HIT from sevilla:3128
Via: 1.1 sevilla (squid/3.3.8)
Connection: keep-alive

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>

for more detail you can see here,


HTTP Header



  • GET       : to get all content and head
  • HEAD    : to get header only
  • POST     : to submit paramters
  • PUT       : rewrite or create new resource of URI
  • DELETE  : to Deletes the specified resource.
  • TRACE   : to trace packet if any changes from intermediate server
  • OPTIONS : to check HTTP methods that the server supports for the specified URL.
  • CONNECT : Converts the request connection to a transparent TCP/IP tunnel
  • PATCH   : Is used to apply partial modifications to a resource.

HTTP Header Status


2xx Success

200 OK
201 Created
202 Accepted
203 Non-Authoritative Information (since HTTP/1.1)
204 No Content
205 Reset Content
206 Partial Content
207 Multi-Status (WebDAV; RFC 4918)
208 Already Reported (WebDAV; RFC 5842)
226 IM Used (RFC 3229)

3xx Redirection

300 Multiple Choices
301 Moved Permanently
302 Found
303 See Other (since HTTP/1.1)
304 Not Modified
305 Use Proxy (since HTTP/1.1)
306 Switch Proxy
307 Temporary Redirect (since HTTP/1.1)
308 Permanent Redirect (approved as experimental RFC)

4xx Client Error

400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
416 Requested Range Not Satisfiable
417 Expectation Failed
418 I'm a teapot (RFC 2324)
419 Authentication Timeout (not in RFC 2616)
420 Method Failure (Spring Framework)
420 Enhance Your Calm (Twitter)
422 Unprocessable Entity (WebDAV; RFC 4918)
423 Locked (WebDAV; RFC 4918)
424 Failed Dependency (WebDAV; RFC 4918)
424 Method Failure (WebDAV)[14]
425 Unordered Collection (Internet draft)
426 Upgrade Required (RFC 2817)
428 Precondition Required (RFC 6585)
429 Too Many Requests (RFC 6585)
431 Request Header Fields Too Large (RFC 6585)
440 Login Timeout (Microsoft)
444 No Response (Nginx)
449 Retry With (Microsoft)
450 Blocked by Windows Parental Controls (Microsoft)
451 Unavailable For Legal Reasons (Internet draft)
451 Redirect (Microsoft)
494 Request Header Too Large (Nginx)
495 Cert Error (Nginx)
496 No Cert (Nginx)
497 HTTP to HTTPS (Nginx)
499 Client Closed Request (Nginx)

5xx Server Error

500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
506 Variant Also Negotiates (RFC 2295)
507 Insufficient Storage (WebDAV; RFC 4918)
508 Loop Detected (WebDAV; RFC 5842)
509 Bandwidth Limit Exceeded (Apache bw/limited extension)
510 Not Extended (RFC 2774)
511 Network Authentication Required (RFC 6585)
520 Origin Error (Cloudflare)
522 Connection timed out
523 Proxy Declined Request (Cloudflare)
524 A timeout occurred (Cloudflare)
598 Network read timeout error (Unknown)
599 Network connect timeout error (Unknown)


.
its important knowing about how proxy works. proxy is intermediary machine to handle request from client to server. It can be as filter, or as cache, or redirecting, or protecting, etc.

how proxy works

How to test proxy

the simplest testing is by telneting the port of proxy server, let say, i have installed squid on my laptop and running on port 3128. So: i can test my proxy by :

febru@sevilla:~$ telnet localhost 3128
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET http://google.com HTTP/1.1

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Thu, 12 Dec 2013 05:35:29 GMT
Expires: Sat, 11 Jan 2014 05:35:29 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic
Age: 56263
X-Cache: HIT from sevilla
X-Cache-Lookup: HIT from sevilla:3128
Via: 1.1 sevilla (squid/3.3.8)
Connection: keep-alive

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>

for more detail you can see here,


HTTP Header



  • GET       : to get all content and head
  • HEAD    : to get header only
  • POST     : to submit paramters
  • PUT       : rewrite or create new resource of URI
  • DELETE  : to Deletes the specified resource.
  • TRACE   : to trace packet if any changes from intermediate server
  • OPTIONS : to check HTTP methods that the server supports for the specified URL.
  • CONNECT : Converts the request connection to a transparent TCP/IP tunnel
  • PATCH   : Is used to apply partial modifications to a resource.

HTTP Header Status


2xx Success

200 OK
201 Created
202 Accepted
203 Non-Authoritative Information (since HTTP/1.1)
204 No Content
205 Reset Content
206 Partial Content
207 Multi-Status (WebDAV; RFC 4918)
208 Already Reported (WebDAV; RFC 5842)
226 IM Used (RFC 3229)

3xx Redirection

300 Multiple Choices
301 Moved Permanently
302 Found
303 See Other (since HTTP/1.1)
304 Not Modified
305 Use Proxy (since HTTP/1.1)
306 Switch Proxy
307 Temporary Redirect (since HTTP/1.1)
308 Permanent Redirect (approved as experimental RFC)

4xx Client Error

400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
416 Requested Range Not Satisfiable
417 Expectation Failed
418 I'm a teapot (RFC 2324)
419 Authentication Timeout (not in RFC 2616)
420 Method Failure (Spring Framework)
420 Enhance Your Calm (Twitter)
422 Unprocessable Entity (WebDAV; RFC 4918)
423 Locked (WebDAV; RFC 4918)
424 Failed Dependency (WebDAV; RFC 4918)
424 Method Failure (WebDAV)[14]
425 Unordered Collection (Internet draft)
426 Upgrade Required (RFC 2817)
428 Precondition Required (RFC 6585)
429 Too Many Requests (RFC 6585)
431 Request Header Fields Too Large (RFC 6585)
440 Login Timeout (Microsoft)
444 No Response (Nginx)
449 Retry With (Microsoft)
450 Blocked by Windows Parental Controls (Microsoft)
451 Unavailable For Legal Reasons (Internet draft)
451 Redirect (Microsoft)
494 Request Header Too Large (Nginx)
495 Cert Error (Nginx)
496 No Cert (Nginx)
497 HTTP to HTTPS (Nginx)
499 Client Closed Request (Nginx)

5xx Server Error

500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
506 Variant Also Negotiates (RFC 2295)
507 Insufficient Storage (WebDAV; RFC 4918)
508 Loop Detected (WebDAV; RFC 5842)
509 Bandwidth Limit Exceeded (Apache bw/limited extension)
510 Not Extended (RFC 2774)
511 Network Authentication Required (RFC 6585)
520 Origin Error (Cloudflare)
522 Connection timed out
523 Proxy Declined Request (Cloudflare)
524 A timeout occurred (Cloudflare)
598 Network read timeout error (Unknown)
599 Network connect timeout error (Unknown)

No comments:

Post a Comment