Вопрос по поводу wget - PullRequest
       4

Вопрос по поводу wget

0 голосов
/ 06 июля 2010

когда я набираю wget http://yahoo.com:80 на оболочке unix.Может кто-нибудь объяснить мне, что именно происходит от ввода команды до достижения сервера Yahoo.Заранее большое спасибо.

Ответы [ 2 ]

1 голос
/ 06 июля 2010

RFC предоставит вам всю необходимую информацию и не привязан к инструменту или ОС.

Wget использует в вашем случае HTTP , который основан на TCP , который, в свою очередь, использует IP , тогда это зависит от того, что вы используете, большая часть раз вы встретите Ethernet кадров.

Чтобы понять, что происходит, я призываю вас установить Wireshark и взглянуть на рассеченные кадры, вы получите обзор того, какие данные принадлежат тому или иному сетевому уровню. Это самый простой способ визуализировать и узнать, что происходит. Помимо этого, если вам действительно нравятся (ирония) смешные документы (/ ирония), посмотрите на соответствующие RFC HTTP: 2616 , например, для других посмотрите на внешние ссылки в нижней части википедии статьи.

0 голосов
/ 06 июля 2010
  1. Программа использует DNS для преобразования имени хоста в IP.Классический вызов API - gethostbyname, хотя в новых программах для совместимости с IPv6 следует использовать getaddrinfo.
  2. Поскольку вы указали порт, программа может пропустить поиск порта по умолчанию для http.Но если вы этого не сделали, то попытались бы getservbyname найти порт по умолчанию (затем снова, wget может просто встроить порт 80).
  3. Программа использует сетевой API для подключения к удаленному хосту,Это делается с помощью socket и connect
  4. Программа записывает http-запрос на соединение с вызовом на write
  5. Программа считывает http-ответ одним или несколькими вызовамидо read.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...