当我在unix shell上输入wget http://yahoo.com:80时。有人可以解释一下从输入命令到达雅虎服务器到底发生了什么。非常感谢你提前。
答案 0 :(得分:1)
RFC为您提供所需的所有详细信息,并且不依赖于工具或操作系统。
Wget在你的情况下使用HTTP,它基于TCP,后者又使用IP,然后它取决于你使用的内容,大部分时间你会遇到Ethernet Wireshark 3}}帧。
为了理解会发生什么,我建议您安装HTTP: 2616并查看解剖后的帧,您将了解哪些数据属于哪个网络层。这是可视化和了解所发生情况的最简单方法。除此之外,如果你真的喜欢(讽刺)有趣的文件(/讽刺),请查看相应的RFC {{3}},例如,其他人看一下维基百科文章底部的外部链接。
答案 1 :(得分:0)
gethostbyname
,但较新的程序应使用getaddrinfo
与IPv6兼容。getservbyname
查找默认端口(然后再次,wget可能只是嵌入端口80)。socket
和connect
write
read
的一次或多次调用来读取http响应。