At 15:29 22.02.99 +0000, you wrote:
>Dear all,
>
>Having used openssl0.9c in a web crawling indexer written in perl I have
>hit a problem when dealing with proxies. They refuse to let the HTTPS
>requests through, even though a browser ( Netscape ) making the same
>request has no problems. Any ideas?
>
I have no information about Netscape but about IE4.0 I have the next
facts (see attachement).
HTH
;)
Sergei
For all tests used Microsoft Internet Explorer (IE) version 4.72.2106.8
REQUESTS classification
^^^^^^^^^^^^^^^^^^^^^^^^
In table we shall code various requests recieved from IE as shown above:
"Direct SSL".
^^^^^^^^^^^^
In this case established direct SSL connection with server's port 443.
"no proxy http/1.1 GET"
^^^^^^^^^^^^^^^^^^^^^^^
It is standard http GET without proxies.
Request is HTTP/1.1 GET with relative url and looks like this:
GET / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Language: ru
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)
Host: localhost
Connection: Keep-Alive
"proxy http/1.1 GET"
^^^^^^^^^^^^^^^^^^^^
It is standard proxy connection.
Request is HTTP/1.1 GET with full url and looks like this:
GET http://localhost/ HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Language: ru
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)
Host: localhost
Proxy-Connection: Keep-Alive
"CONNECT"
^^^^^^^^^
It is so called "tunneling" proxy connection.
Request is HTTP/1.1 "CONNECT" request and looks like this:
CONNECT localhost:443 HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)
Host: localhost
Proxy-Connection: Keep-Alive
Pragma: No-Cache
"SOCKS port 80"
^^^^^^^^^^^^^^^
It is socks proxy connection request for port 80
like this (because it is binary request, we
shall represent it in "binary-dump" mode):
0000 - 04 01 00 50 7f 00 00 01 61 61 61 ...P....aaa
000c - 00
Or, in other words:
0-th byte : this is SOCKS version 4.0 request with protocol 4.0,
1-st byte : command protocol subset number 1,
2-3 bytes : port 80
4-7 bytes : host 127.0.0.1,
8-10 bytes: userid "aaa",
11 byte : "end of userid mark"
"SOCKS port 443"
^^^^^^^^^^^^^^^^
It is also socks proxy connection request for port 443
like this (because it is binary request, we
shall represent it in "binary-dump" mode):
0000 - 04 01 01 BB 7f 00 00 01 61 61 61 ...P....aaa
000c - 00
Or, in other words:
0-th byte : this is SOCKS version 4.0 request with protocol 4.0,
1-st byte : command protocol subset number 1,
2-3 bytes : port 443
4-7 bytes : host 127.0.0.1,
8-10 bytes: userid "aaa",
11 byte : "end of userid mark"
IE version 4.72.2106.8 PROXY SETTINGS TABLE
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
!--------------------!--------------------------------------------------------!
! ! URL = http://localhost/ ! URL = https://localhost/ !
! IE "proxy config" !==========================!=============================!
! dialog settings ! IE R E Q U E S T S: !
!====================!==========================!=============================!
! "http proxy" ! proxy http/1.1 GET ! Direct SSL !
!--------------------!--------------------------!-----------------------------!
! "secure proxy" ! no proxy http/1.1 GET ! CONNECT !
!--------------------!--------------------------!-----------------------------!
! Socks proxy only, ! SOCKS port 80 ! SOCKS port 443 !
! no other proxies ! ! !
!--------------------!--------------------------!-----------------------------!
! Socks proxy and ! SOCKS port 80 ! CONNECT !
! secure proxy ! ! !
!--------------------!--------------------------!-----------------------------!
! http proxy, ! proxy http/1.1 GET ! CONNECT !
! secure proxy, ! ! !
! SOCKS proxy ! ! !
!--------------------!--------------------------!-----------------------------!
! Check box ! proxy http/1.1 GET ! Direct SSL !
!"use the same proxy ! ! !
!server for all ! ! !
!protocols" is ! ! !
!checked ! ! !
!--------------------!--------------------------!-----------------------------!