Как HTTP-прокси использует протокол HTTP?прокси RFC? - PullRequest
28 голосов
/ 28 сентября 2011

Как можно реализовать HTTP-прокси по сравнению с веб-сервером HTTP, в чем различия? Есть ли полное руководство или RFC или полезная книга на эту тему?

Ответы [ 3 ]

26 голосов
/ 08 июля 2016

Заголовок, отправляемый на прокси-сервер, отличается.

Например, вот что отправляет Google Chrome на www.baidu.com через прокси-сервер:

GET http://www.baidu.com/ HTTP/1.1
Host: www.baidu.com
Proxy-Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
DNT: 1
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8

Мыможно увидеть, что это

GET http://www.baidu.com/ HTTP/1.1

вместо

GET / HTTP/1.1

и здесь

Proxy-Connection: keep-alive

также

Host: www.baidu.com

Поле хоста равно требуется для http-прокси.

Для HTTPS-туннельного прокси:

CONNECT comet.zhihu.com:443 HTTP/1.1
Host: comet.zhihu.com:443
Proxy-Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36

Мы можем видеть

CONNECT comet.zhihu.com:443 HTTP/1.1

domain:443 вместо https://domain.

поле CONNECT превращает прокси-сервер в нечто вроде TCP-туннеля, затем протокол HTTPS заменяется на порт :443

Для прокси socks5,все становится проще, потому что socks5 не заботится о протоколе более высокого уровня, вы просто указываете ему host и port.

17 голосов
/ 28 сентября 2011
7 голосов
/ 28 сентября 2011

Прокси очень похож на сервер;единственное отличие состоит в том, что после анализа запроса он просто перенаправляет его и возвращает результат *, а не обрабатывает сам запрос.Поскольку прокси-сервер не должен выполнять такой же объем обработки, как обычный сервер, он часто может обходиться гораздо более минимальным разбором запросов, чем полноценный сервер, но в остальном это та же идея.

* В некоторых прокси реализовано дополнительное кэширование.Некоторые также возмущаются ответом / запросом, но это злой вид прокси, который, мы надеемся, вы не имеете в виду.

...