我正在使用HTTP Headers,如下所示。
GET /success.txt HTTP/1.1
Host: detectportal.firefox.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0)
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Cache-Control: no-cache
Pragma: no-cache
Connection: keep-alive
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 8
Last-Modified: Mon, 15 May 2017 18:04:40 GMT
ETag: "ae780585fb7d28906123"
Accept-Ranges: bytes
Server: AmazonS3
X-Amz-Cf-Id: iMjet-5hLAEAf8HyvtHWnotG4mkD7VeN7A==
Cache-Control: no-cache, no-store, must-revalidate
Date: Mon, 24 Jul 2017 18:24:08 GMT
Connection: keep-alive
从上面的握手中可以看出,这是一次成功的双向握手。我只是想知道这种类型的握手是否能告诉我们文件是否被下载,上传或访问?如果不是,我们如何知道从Header文件中发生了哪些操作?
谢谢!
答案 0 :(得分:0)
有没有想知道pdf文件是从[包含这些] HTTP头[s]的捕获网络数据包中下载的?
没有。标题描述了资源,以及可选择的资源内容。
在阅读标题后,没有人阻止您关闭连接,导致内容无法下载。
因此,只要看到这些标题在网络上飞过,就无法证明有人真正查看了该响应的内容,即使有任何内容。
但总的来说,如果请求有一个有效负载,你可以说上传了“某些东西”,如果一个响应有一个有效负载,你可以说下载了“东西”。通过检查请求的内容类型标头,可以获得上传的确切内容。请注意,“文件”的概念在通过网络传输时会变得模糊。响应请求的Web服务器可以在内存中生成PDF文档,并使用在浏览器中提示“另存为...”对话框的标题来提供该文档。那你可以说下载了一个“文件”吗?如果站点提供服务器磁盘上存在的CSS文件(浏览器呈现但不存储在磁盘上)(禁止缓存)会怎样?那个“文件”被“下载”了吗?
请参阅HTTP response headers valid with no Transfer-Encoding and Content-Length?如何确定邮件的长度。
答案 1 :(得分:0)
如果您想通过查看标题来了解HTTP响应是否适用于HTML文档以外的文件,请检查Content-Type
标题。它包含要发送的内容的MIME type,例如text/html
表示HTML文件,text/css
表示CSS文件,application/pdf
或application/x-pdf
表示PDF文件, video/mp4
获取MP4视频等。官方列表位于http://www.iana.org/assignments/media-types/media-types.xhtml