Http ' 之后的所有内容都不会通过浏览器发送

Http &#39; 之后的所有内容都不会通过浏览器发送,http,browser,proxy,Http,Browser,Proxy,我为我的浏览器(Firefox21、IE10)设置了代理服务器。奇怪的是,只要有';(请忽略空格)在请求URL中,浏览器不会发送该请求及其后的任何内容 起初我认为这是代理服务器的问题,所以我编写了一个简单的套接字服务器,并尝试查看浏览器发送的内容(见下文)。当我调试代码时,它证明了浏览器确实没有发送“以及之后的所有内容”。有人见过这个吗?为什么会这样 nFd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if(nFd < 0

我为我的浏览器(Firefox21、IE10)设置了代理服务器。奇怪的是,只要有';(请忽略空格)在请求URL中,浏览器不会发送该请求及其后的任何内容

起初我认为这是代理服务器的问题,所以我编写了一个简单的套接字服务器,并尝试查看浏览器发送的内容(见下文)。当我调试代码时,它证明了浏览器确实没有发送“以及之后的所有内容”。有人见过这个吗?为什么会这样

    nFd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
    if(nFd < 0) break;

    sockaddr_in addr = {0};
    addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = htonl(INADDR_ANY);
    addr.sin_port = htons(7995);
    int nAddrLen = sizeof(addr);

    if(0 != ::bind(nFd, (const sockaddr*)&addr, nAddrLen))
        break;

    if(0 != listen(nFd, 64))
        break;

    nClientFd = accept(nFd, (sockaddr*)&addr, &nAddrLen);
    if(nClientFd < 0) break;


    char buf[16384] = {0};
    int nBytesRead = recv(nClientFd, buf, 16384, 0);
    if(nBytesRead <= 0) break;

    cout << buf << endl;
nFd=socket(PF_INET、SOCK_STREAM、IPPROTO_TCP);
如果(nFd<0)中断;
sockaddr_in addr={0};
addr.sin_family=AF_INET;
addr.sin_addr.s_addr=htonl(INADDR_ANY);
地址sin_port=htons(7995);
int nAddrLen=sizeof(addr);
if(0!=::绑定(nFd,(const sockaddr*)和addr,nAddrLen))
打破
如果(0!=侦听(nFd,64))
打破
nClientFd=接受(nFd,(sockaddr*)和addr,&nAddrLen);
如果(nClientFd<0)中断;
char buf[16384]={0};
int nBytesRead=recv(nClientFd,buf,16384,0);
如果(nBytesReadHTTP/HTTPS URL中保留了
#
字符,并标记URL的
片段
组件的开头。HTTP/HTTPS URL的这一部分永远不会发送到服务器。如果希望将#字符和后续信息发送到服务器,则必须将#URL编码为%23