Cookie大小限制.大饼干



我正在使用ISAPI DLL,遇到了DLL的TWebRequest时的情况。如果总Cookie大小大于4096字节,Cookie将根本不显示任何Cookie。有办法处理大的饼干吗?

在Delphi中,没有办法,除非您实现自己的ISAPI层(IntraWeb所做的事情)。基于内置ISAPI层(TISAPIRequest/TISAPIResponse)的所有东西都无法处理它,因为它如何从请求中检索cookie字段。方法是TISAPIRequest.GetFieldByName() (unit Web.Win.IsapiHTTP):

function TISAPIRequest.GetFieldByName(const Name: AnsiString): AnsiString;
var
  Buffer: array[0..4095] of AnsiChar;
  ...
begin
  ...
end;

请注意,缓冲区变量——它将获得实际数据——被限制为4096字节。这就是为什么您只能在cookie中接收一定量的数据。我不知道你如何接收更多的数据,除非你把它分成多个cookie。您还可以使用自定义字段发送数据(从浏览器端更容易创建/操作),如"X-Example-Your-Data: abcde"(也限制为4096字节)。您可以使用相同的GetFieldByName()方法检索该数据。

最新更新