我理解keep-alive的http会话中多次请求在“合理”的情况下是不会出现cookie、user-agent被改变的情况的,但一些hack方法确实可以改变它们;如果上述前提是正确的,那么http协议以及主流的http server对这类情形的处理有成型方案吗?
这主要是个http协议、http server的问题,因为对python比较熟悉,所以拿python的requests包写示例代码。
import requests
# 全局变量Session实例
s = requests.Session()
s.mount('http://', requests.adapters.HTTPAdapter(pool_connections=1, pool_maxsize=1, max_retries=0, pool_block=False))
# 访问url获取响应
def openUrl(url, headers):
r = s.get(url, headers = headers, allow_redirects = False)
return r
url = "https://www.example.com"
# 同一个会话中,两次请求,不同的ua和cookie
headers = {'user-agent': 'ua1', "cookie": "sid: 1"}
r1 = openUrl(url, headers = headers)
headers = {'user-agent': 'ua2', "cookie": "sid: 2"}
r2 = openUrl(url, headers = headers)
apache、nginx等会对r2做非法处理吗?
비극적인 질문자는 개념을 오해했습니다.
쿠키는 백그라운드 애플리케이션에 의해 처리되고 분석됩니다. 쿠키를 엉망으로 만들거나 삭제하든 상관 없습니다. Apache나 nginx 모두 이에 대해 신경 쓰지 않습니다.
또한 연결 유지는 연결 계층의 작업입니다. 기본적으로 HTTP 레이어와는 아무런 관련이 없습니다. N개의 웹사이트가 특정 서버에 구축되어 있고 TCP 링크를 사용하여 A사이트를 요청하고 TCP 연결을 유지한 후 계속해서 B사이트를 요청한다면 http 서버는 귀하를 신경쓰지 않을 것입니다.
질문이 있으신가요?