shpan_111 发表于 2011-4-27 22:56:45

请问网页中的图片是如何通过网络传输的?

在单片机上搭建了一个基本的web服务器,能够响应PC客户机的HTTP请求,在客户端IE输入IP后能够显示服务器传送过来的web页面(基本上都是文字)。现在我想把服务器上的图片传送给客户端。不知道怎么传啊? 看html语法,如果是图片,则用路径,但是这样只是定义了一个路径。图片数据怎么发送呢?我肯定要打开图片文件,然后发送吧?

chrc 发表于 2011-6-18 03:12:51

很简单. 你登录这个网站.网站最先响应的是HTML编码.然后把你的请求发送到网站服务器.服务器接受请求.把请求的文件发送给你.你自然就接收到了.这是个自动发送和接收的过程

vAnA 发表于 2011-7-11 03:49:09

请百度HTTP协议,资料很多

vAnA 发表于 2011-7-11 03:49:50

如果要主动传送,只能做CS架构了吧~~

qllaoda 发表于 2011-9-21 10:26:48

开启wireshark,然后打开一个有图片的网站,自己分析里面的数据包吧。

weakdancer 发表于 2011-11-28 02:12:03

给楼主点参考,我用程序:

import socket
q="/static/img/gear24.png"
host="www.v2ex.com"
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, 80))
out = sock.makefile("rw", 0)
print >> out, 'GET %s HTTP/1.0\r\nHost: %s\r\nUser-agent: Python-urllib/1.15\r\n\r\n'%(q,host)

print repr(out.read())[:300]
out.close()
print "Client ok"

得到:
Python 2.2.2 (#0, Nov7 2008, 14:24:30) on symbian_s60
Type "copyright", "credits" or "license" for more information.
Ped 2.30.5 beta
>>> ===== RESTART =====
>>>
'HTTP/1.1 200 OK\r\nDate: Sun, 27 Nov 2011 18:09:59 GMT\r\nContent-Type: image/png\r\nConnection: close\r\nETag: "Xh67cg"\r\nExpires: Wed, 07 Dec 2011 15:34:33 GMT\r\nServer: Google Frontend\r\nContent-Length: 7099\r\nCache-Control: public, max-age=864000\r\nAge: 9326\r\n\r\n\x89PNG\r\n\x1a\n\x00\x0
Client ok
>>>

可以看到
Age: 9326\r\n
之后就是文件的二进制数据了,你需要做的就是回馈这些数据
页: [1]
查看完整版本: 请问网页中的图片是如何通过网络传输的?