2010-11-05 199 views
1

一旦用户点击一个URL,本地机器在主机文件上查找是否有任何条目,如果不是本地机器ping某些DNS(如何?在哪里?)来解析URL并获取关联的IP地址...一旦获得IP,它会在该IP地址上打开套接字通道并与服务器交互...客户端(浏览器)如何生成发送到服务器的请求?

这是准确的吗?

我想了解一步一步详细地了解如何生成请求并将其发送到服务器。

感谢您的输入!

+0

如果你想详细了解我不认为你应该问stackoverflow。你应该开始一些严肃的阅读(包括RFC)。 – 2010-11-05 20:26:46

+1

*(如何?哪里?)*您的互联网连接有一个DNS服务器关联。查找从那里开始并从服务器跳到服务器,直到找到正确的IP。 http://en.wikipedia.org/wiki/File:An_example_of_theoretical_DNS_recursion.svg – 2010-11-05 20:27:17

+0

相信我我读过很多文档,包括Apache 2.2文档。有时候会有人指出你的重要部分,因为我无法消化所有这一切 – qodeninja 2010-11-05 20:30:04

回答

2

我假设你在谈论TCP连接。如您所说,客户端将在其hosts文件中进行查找;如果没有条目,它将查找其第一个配置的DNS服务器(基于手动配置或DHCP设置)并启动到该服务器的连接。一旦客户端具有所需服务器的地址,它就会向该服务器发送一个SYN数据包,该SYN数据包将用SYN/ACK进行回复,客户端将用ACK数据包进行回复以建立连接。这是TCP handshake。建立连接后,客户端和服务器通过各自的套接字进行通信,通过TCP协议层传递数据,并发送纠错和元数据包以相互协调。该信息包含请求的类型,通常取决于协议。对于HTTP,这通常是一个GET或POST请求,由服务器进行适当的响应。如果你想获得更具体的信息,你可以发布你感兴趣的协议吗?

+0

DHCP设置 - 我看到...感谢您分享这个详细的网络信息。我只对tcp/ip有一个宽松的理解,但是我通常对理解http请求的内容感兴趣。到目前为止,这是很棒的! – qodeninja 2010-11-05 20:36:07

4

有关DNS工作方式的详细概述,请参阅RFC 1035以及HTTP的工作方式请参阅RFC 2616

这些是规范文档。他们会得到非常详细的信息,但是如果您坚持整体运营部分并查找需要说明的部分,这些部分会非常有帮助。

基本上对于任何需要解释的协议(在更深层次上,您可能想看到TCP),获取信息最详细的地方就是RFC。

+0

谢谢。我喜欢规范中的ascii图表lol – qodeninja 2010-11-05 20:33:46

+0

为什么不发布IETF的直接链接? – 2010-11-05 20:35:05

+0

改变了,我只是一种与谷歌的第一击。 – 2010-11-05 20:37:36

1

是的。你ae越来越不正确。

它看起来在主机文件,然后在DNS中。在linux机器上,您可以更改etc/resolv.conf文件中的顺序。

您的主DNS服务器配置在您的tcp/ip设置。 DNS正在使用端口UDP/53进行请求。如果您的DNS无法解析主机名称,它会将其转发给父DNS,但这是另一个话题。 获取IP地址后,它将使用地址(IP +端口)打开服务器的套接字。

希望它有帮助。

1

http://betterexplained.com/wp-content/uploads/compression/HTTP_request.png

+1

虽然是一幅美丽的图画,但我不认为这真的能够在所需的深度和技术意义上回答这个问题。 – 2010-11-05 21:15:20

相关问题