之前,我们以及可以假装成服务端让客户端——浏览器来访问了,但是为了知道服务器把文件内容传回来的语法是什么,我们需要假装成客户端
那么我们如何假装成客户端呢?我们需要使用上次从谷歌浏览器中get
到的语法
首先开启Windows
的IIS
服务,建立一个网站,然后写如下代码来连接:
uses zul_socket;
var
a:Tclient;
msg:ansistring;
begin
a:=Tclient.create;
a.host:='127.0.0.1';
a.port:=8080;
a.init;
a.connect;
writeln('connected');
while true do
begin
a.send('GET / HTTP/1.1'+#13#10+'Host: localhost:8080'+#13#10+'Connection: keep-alive'+#13#10+'Cache-Control: max-age=0'+#13#10+'Upgrade-Insecure-Requests: 1'+#13#10+'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/70.0.3538.110 Safari/537.36'+#13#10+'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'+#13#10+'Accept-Encoding: gzip, deflate, br'+#13#10+'Accept-Language: zh-CN,zh;q=0.9'+#13#10#13#10#13#10);
msg:=a.recv;
while msg<>'' do
begin
writeln(msg);
msg:=a.recv;
end;
end;
end.
运行,然后发现:
HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Thu, 11 Apr 2019 13:34:37 GMT
Accept-Ranges: bytes
ETag: "b022b44e6bf0d41:0"
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Thu, 11 Apr 2019 13:59:43 GMT
Content-Length: 124
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<p>test 1</p>
test2
</body>
</html>
tests
解释:
- 第一行一如既往地是状态行
Last-Modified
表示这个请求的文件最后一次修改的时间,注意时区问题Content-Length
表示所请求的文件的长度Date
是服务器收到请求的时间,注意时区问题- 一个空行之后就是原模原样的那个文件