Skip to content

Instantly share code, notes, and snippets.

@pjb3
Created December 27, 2013 15:33
Show Gist options
  • Save pjb3/8148631 to your computer and use it in GitHub Desktop.
Save pjb3/8148631 to your computer and use it in GitHub Desktop.
Why don't Firefox, Chrome or Safari support passing HTTP Basic Auth user/pass in the URL the way cURL does? I am running the rack server with the rackup command. In all of these requests, I am loading the URL http://user:pass@localhost:9292. In the output, you can tell which client is used for each request from the user agent header. I tried cur…
require 'json'
run -> (env) {
body = JSON.pretty_generate(env) + "\n"
puts body
[ 200, { 'Content-Type' => 'application/json',
'Content-Length' => body.length.to_s }, [body] ]
}
$ rackup
>> Thin web server (v1.5.1 codename Straight Razor)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:9292, CTRL+C to stop
{
"SERVER_SOFTWARE": "thin 1.5.1 codename Straight Razor",
"SERVER_NAME": "localhost",
"rack.input": "#<Rack::Lint::InputWrapper:0x007ff3826a9528>",
"rack.version": [
1,
0
],
"rack.errors": "#<Rack::Lint::ErrorWrapper:0x007ff3826a94b0>",
"rack.multithread": false,
"rack.multiprocess": false,
"rack.run_once": false,
"REQUEST_METHOD": "GET",
"REQUEST_PATH": "/",
"PATH_INFO": "/",
"REQUEST_URI": "/",
"HTTP_VERSION": "HTTP/1.1",
"HTTP_AUTHORIZATION": "Basic dXNlcjpwYXNz",
"HTTP_USER_AGENT": "curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.5",
"HTTP_HOST": "localhost:9292",
"HTTP_ACCEPT": "*/*",
"GATEWAY_INTERFACE": "CGI/1.2",
"SERVER_PORT": "9292",
"QUERY_STRING": "",
"SERVER_PROTOCOL": "HTTP/1.1",
"rack.url_scheme": "http",
"SCRIPT_NAME": "",
"REMOTE_ADDR": "127.0.0.1",
"async.callback": "#<Method: Thin::Connection#post_process>",
"async.close": "#<EventMachine::DefaultDeferrable:0x007ff3826a0e28>"
}
127.0.0.1 - - [27/Dec/2013 10:27:46] "GET / HTTP/1.1" 200 1002 0.0009
{
"SERVER_SOFTWARE": "thin 1.5.1 codename Straight Razor",
"SERVER_NAME": "localhost",
"rack.input": "#<Rack::Lint::InputWrapper:0x007ff3826ba2d8>",
"rack.version": [
1,
0
],
"rack.errors": "#<Rack::Lint::ErrorWrapper:0x007ff3826ba260>",
"rack.multithread": false,
"rack.multiprocess": false,
"rack.run_once": false,
"REQUEST_METHOD": "GET",
"REQUEST_PATH": "/",
"PATH_INFO": "/",
"REQUEST_URI": "/",
"HTTP_VERSION": "HTTP/1.1",
"HTTP_HOST": "localhost:9292",
"HTTP_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0",
"HTTP_ACCEPT": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"HTTP_ACCEPT_LANGUAGE": "en-US,en;q=0.5",
"HTTP_ACCEPT_ENCODING": "gzip, deflate",
"HTTP_CONNECTION": "keep-alive",
"GATEWAY_INTERFACE": "CGI/1.2",
"SERVER_PORT": "9292",
"QUERY_STRING": "",
"SERVER_PROTOCOL": "HTTP/1.1",
"rack.url_scheme": "http",
"SCRIPT_NAME": "",
"REMOTE_ADDR": "127.0.0.1",
"async.callback": "#<Method: Thin::Connection#post_process>",
"async.close": "#<EventMachine::DefaultDeferrable:0x007ff3826b1d18>"
}
127.0.0.1 - - [27/Dec/2013 10:28:00] "GET / HTTP/1.1" 200 1141 0.0007
{
"SERVER_SOFTWARE": "thin 1.5.1 codename Straight Razor",
"SERVER_NAME": "localhost",
"rack.input": "#<Rack::Lint::InputWrapper:0x007ff3826cade0>",
"rack.version": [
1,
0
],
"rack.errors": "#<Rack::Lint::ErrorWrapper:0x007ff3826cad68>",
"rack.multithread": false,
"rack.multiprocess": false,
"rack.run_once": false,
"REQUEST_METHOD": "GET",
"REQUEST_PATH": "/",
"PATH_INFO": "/",
"REQUEST_URI": "/",
"HTTP_VERSION": "HTTP/1.1",
"HTTP_HOST": "localhost:9292",
"HTTP_CONNECTION": "keep-alive",
"HTTP_ACCEPT": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"HTTP_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36",
"HTTP_ACCEPT_ENCODING": "gzip,deflate,sdch",
"HTTP_ACCEPT_LANGUAGE": "en-US,en;q=0.8,da;q=0.6,fr;q=0.4",
"GATEWAY_INTERFACE": "CGI/1.2",
"SERVER_PORT": "9292",
"QUERY_STRING": "",
"SERVER_PROTOCOL": "HTTP/1.1",
"rack.url_scheme": "http",
"SCRIPT_NAME": "",
"REMOTE_ADDR": "127.0.0.1",
"async.callback": "#<Method: Thin::Connection#post_process>",
"async.close": "#<EventMachine::DefaultDeferrable:0x007ff3826c2820>"
}
127.0.0.1 - - [27/Dec/2013 10:28:17] "GET / HTTP/1.1" 200 1212 0.0007
{
"SERVER_SOFTWARE": "thin 1.5.1 codename Straight Razor",
"SERVER_NAME": "localhost",
"rack.input": "#<Rack::Lint::InputWrapper:0x007ff3826dbde8>",
"rack.version": [
1,
0
],
"rack.errors": "#<Rack::Lint::ErrorWrapper:0x007ff3826dbd70>",
"rack.multithread": false,
"rack.multiprocess": false,
"rack.run_once": false,
"REQUEST_METHOD": "GET",
"REQUEST_PATH": "/favicon.ico",
"PATH_INFO": "/favicon.ico",
"REQUEST_URI": "/favicon.ico",
"HTTP_VERSION": "HTTP/1.1",
"HTTP_HOST": "localhost:9292",
"HTTP_CONNECTION": "keep-alive",
"HTTP_ACCEPT": "*/*",
"HTTP_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36",
"HTTP_ACCEPT_ENCODING": "gzip,deflate,sdch",
"HTTP_ACCEPT_LANGUAGE": "en-US,en;q=0.8,da;q=0.6,fr;q=0.4",
"GATEWAY_INTERFACE": "CGI/1.2",
"SERVER_PORT": "9292",
"QUERY_STRING": "",
"SERVER_PROTOCOL": "HTTP/1.1",
"rack.url_scheme": "http",
"SCRIPT_NAME": "",
"REMOTE_ADDR": "127.0.0.1",
"async.callback": "#<Method: Thin::Connection#post_process>",
"async.close": "#<EventMachine::DefaultDeferrable:0x007ff3826d3828>"
}
127.0.0.1 - - [27/Dec/2013 10:28:17] "GET /favicon.ico HTTP/1.1" 200 1174 0.0006
{
"SERVER_SOFTWARE": "thin 1.5.1 codename Straight Razor",
"SERVER_NAME": "localhost",
"rack.input": "#<Rack::Lint::InputWrapper:0x007ff3826e0e88>",
"rack.version": [
1,
0
],
"rack.errors": "#<Rack::Lint::ErrorWrapper:0x007ff3826e0e10>",
"rack.multithread": false,
"rack.multiprocess": false,
"rack.run_once": false,
"REQUEST_METHOD": "GET",
"REQUEST_PATH": "/favicon.ico",
"PATH_INFO": "/favicon.ico",
"REQUEST_URI": "/favicon.ico",
"HTTP_VERSION": "HTTP/1.1",
"HTTP_HOST": "localhost:9292",
"HTTP_CONNECTION": "keep-alive",
"HTTP_ACCEPT": "*/*",
"HTTP_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36",
"HTTP_ACCEPT_ENCODING": "gzip,deflate,sdch",
"HTTP_ACCEPT_LANGUAGE": "en-US,en;q=0.8,da;q=0.6,fr;q=0.4",
"GATEWAY_INTERFACE": "CGI/1.2",
"SERVER_PORT": "9292",
"QUERY_STRING": "",
"SERVER_PROTOCOL": "HTTP/1.1",
"rack.url_scheme": "http",
"SCRIPT_NAME": "",
"REMOTE_ADDR": "127.0.0.1",
"async.callback": "#<Method: Thin::Connection#post_process>",
"async.close": "#<EventMachine::DefaultDeferrable:0x007ff3826d88c8>"
}
127.0.0.1 - - [27/Dec/2013 10:28:17] "GET /favicon.ico HTTP/1.1" 200 1174 0.0006
{
"SERVER_SOFTWARE": "thin 1.5.1 codename Straight Razor",
"SERVER_NAME": "localhost",
"rack.input": "#<Rack::Lint::InputWrapper:0x007ff3826f1c10>",
"rack.version": [
1,
0
],
"rack.errors": "#<Rack::Lint::ErrorWrapper:0x007ff3826f1b98>",
"rack.multithread": false,
"rack.multiprocess": false,
"rack.run_once": false,
"REQUEST_METHOD": "GET",
"REQUEST_PATH": "/",
"PATH_INFO": "/",
"REQUEST_URI": "/",
"HTTP_VERSION": "HTTP/1.1",
"HTTP_HOST": "localhost:9292",
"HTTP_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/6.1.1 Safari/537.73.11",
"HTTP_ACCEPT": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"HTTP_ACCEPT_LANGUAGE": "en-us",
"HTTP_ACCEPT_ENCODING": "gzip, deflate",
"HTTP_CONNECTION": "keep-alive",
"GATEWAY_INTERFACE": "CGI/1.2",
"SERVER_PORT": "9292",
"QUERY_STRING": "",
"SERVER_PROTOCOL": "HTTP/1.1",
"rack.url_scheme": "http",
"SCRIPT_NAME": "",
"REMOTE_ADDR": "127.0.0.1",
"async.callback": "#<Method: Thin::Connection#post_process>",
"async.close": "#<EventMachine::DefaultDeferrable:0x007ff3826e9650>"
}
127.0.0.1 - - [27/Dec/2013 10:28:36] "GET / HTTP/1.1" 200 1170 0.0010
{
"SERVER_SOFTWARE": "thin 1.5.1 codename Straight Razor",
"SERVER_NAME": "localhost",
"rack.input": "#<Rack::Lint::InputWrapper:0x007ff382702808>",
"rack.version": [
1,
0
],
"rack.errors": "#<Rack::Lint::ErrorWrapper:0x007ff382702790>",
"rack.multithread": false,
"rack.multiprocess": false,
"rack.run_once": false,
"REQUEST_METHOD": "GET",
"REQUEST_PATH": "/favicon.ico",
"PATH_INFO": "/favicon.ico",
"REQUEST_URI": "/favicon.ico",
"HTTP_VERSION": "HTTP/1.1",
"HTTP_HOST": "localhost:9292",
"HTTP_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/6.1.1 Safari/537.73.11",
"HTTP_ACCEPT": "*/*",
"HTTP_REFERER": "http://localhost:9292/",
"HTTP_ACCEPT_LANGUAGE": "en-us",
"HTTP_ACCEPT_ENCODING": "gzip, deflate",
"HTTP_CONNECTION": "keep-alive",
"GATEWAY_INTERFACE": "CGI/1.2",
"SERVER_PORT": "9292",
"QUERY_STRING": "",
"SERVER_PROTOCOL": "HTTP/1.1",
"rack.url_scheme": "http",
"SCRIPT_NAME": "",
"REMOTE_ADDR": "127.0.0.1",
"async.callback": "#<Method: Thin::Connection#post_process>",
"async.close": "#<EventMachine::DefaultDeferrable:0x007ff3826fa388>"
}
127.0.0.1 - - [27/Dec/2013 10:28:36] "GET /favicon.ico HTTP/1.1" 200 1187 0.0007
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment