Открыть меню    

Командная строка windows, протокол HTTP, азы серверного программирования

командная строка windows В данной статье приведены основы, которые обязательно должны знать начинающие веб-мастера.

Командное окно windows, работаем с командной строкой

Чтобы открыть командное окно перейдите по ПУСК-стандартные-выполнить и пропишите cmd.

Как перейти с диска на диск в командной строке

Поменять диск можно при помощи следующего синтаксиса (указываем имя диска с двоеточием):

d:

Вывод имени либо смена текущей папки:

cd        -  "path to the folder" (кавычки нужны, если в именах в пути есть пробелы)
cd c:\

Вывод списка файлов и подпапок указанной папки:

dir

Команда help дает еще больше информации о работе с командной строкой.

Полезные утилиты командной строки

Утилита ipconfig

Утилита ipconfig - это утилита командной строки для вывода деталей текущего соединения и управления клиентскими сервисами DHCP и DNS. Один из наиболее полезных ключей утилиты ipconfig:

/all – получаем  полную информацию по всем адаптерам; 
Ipconfig /displaydns  - Отображение содержимого кэша DNS

После обновления файла hosts (C:\Windows\System32\drivers\etc) не забывайте использовать:

Ipconfig /flushdns  - Очистить кэш DNS

Утилита ping

  • -I      - задание срока жизни пакетов
  • -n      - число отправляемых запросов эха
  • -t      - проверка связи с указанным узлом до прекращения.

Пропингуем dnzl.ru: ping dnzl.ru. Задача утилиты: проверяем ‛живучесть‛ сервера.

Утилита tracert

Трассировка. При помощи данной утилиты мы может отследить весь путь от нашей машины до конечной машины. Например: tracert dnzl.ru.

Утилитата netstat

Команда netstat показывает содержимое различных структур данных, связанных с сетью, в различных форматах в зависимости от указанных опций.

  • -a      - Показывать состояние всех сокетов; или отображение всех подключений и ожидающих портов
  • -n      - Показываем адреса и порты в числовом формате
  • -o      - Показываем код id процесса для каждого поключения

Утилита nslookup

Данная утилита позволяет по доменному адресу узнать ip-адрес или наоборот.

nslookup dnzl.ru     -  сперва выдаст наш ip, затем покажет ip нужного вам сайта.
nslookup  77.222.61.12    -  получим адрес хостера dnzl.ru

Маска подсети

Маска подсети – основная задача маски подсети определить, какая часть IP-адреса относится к адресу сети, а какая к адресу узла в этой сети. Например, узел с IP-адресом 52.35.55.78 и маской подсети 255.255.255.0 находится в сети 52.35.55.0/24 с длиной префикса 24 бита.

Шлюз

Шлюз – это машина, на которую пересылаются все данные, которые идут вовне. Если маска подсети не совпадают, данные перекидываются на шлюз (default gateway – шлюз по умолчанию).

NAT

NAT – (network address translation) это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов.

Основная функция NAT:

Позволяет сэкономить IP-адреса (только в случае использования NAT в режиме PAT), транслируя несколько внутренних IP-адресов в один внешний публичный IP-адрес (или в несколько, но меньшим количеством, чем внутренних).

Сокеты и порты

Сокет = ip + порт

Порты служб:

ftp21
smtp 25
dns 53
web 80
pop3 110
imap4 143
netbios 137-139

Порты созданы для ‛удобства‛.

DNS

DNS (domain name system) – система доменных имен.

Браузер (правильнее сказать, операционная система) отправляет доменное имя (понятное человеческому глазу и, к тому же, его проще запомнить, например, dnzl.ru). DNS сервер определяет, какому IP адресу соответствует пришедшее доменное имя. Одному IP-адресу могут соответствовать несколько IP-адресов, и наоборот. На DNS-сервере хранятся списки соответствия ip-адресов доменным именам.

Корневые DNS-сервера (самые верхние) имеют списки соответствия другим серверам, каждый из которых соответствует своей зоне: существует корневые домены (13 штук): ru, com, org, и т.д. Эти сервера перенаправляют на те dns-серверa, которые и знают о местонахождении присланного адреса.

Все серверы DNS кэшируют ответы. То есть мы, возможно, не идем дальше нашего DNS, который нам назначил провайдер (‛предпочитаемый DNS-сервер‛).

Способы определения адреса по имени, в порядке убывания

  • Файл hosts (C:\Windows\System32\drivers\etc, 127.0.0.1 – машина обращается к собственным службам);
  • Запрос к DNS-серверу;
  • Широковещательный запрос в сеть;

Сервер

Сервер, как и магазин, то есть бывает, например, компьютерный магазин или овощной магазин, так и сервер (сервер это программное обеспечение, например, есть DNS-сервер) это какая-либо служба, задача которой принять вопрос и дать на него ответ (вопрос относится к спецификации сервера/магазина).

Протокол HTTP (hypertext transfer protocol)

Протокол HTTP использует, по умолчанию, 80 порт и, соответственно, нам нет необходимости его прописывать.

Связка ‛клиент - сервер‛ или ‛Запрос – ответ‛.

Запрос клиента HTTP (основная строка запроса):

GET      /folder/main.html HTTP/1.1 

P.S. Характеризуют конец строки и завершение информации служебные символы: возврат каретки и перевод на новую строку.

  • GET – метод запроса (POST);
  • /folder/index.html – запрашиваемый ресурс;
  • HTTP/1.1 - версия протокола (на какой протокол ссылается браузер);
  • Далее идут HTTP заголовки.

Так как все передается строками, и серверу нужно понимать, где что закончилось, соответственно, для определения конца строки используются /r/n (возврат каретки, перевод на новую строку).

Заголовки HTTP

Заголовки HTTP (HTTP Headers) — это строки в HTTP-сообщении, содержащие разделённую двоеточием пару имя-значение (имя заголовка: значение). Заголовки должны отделяться от тела сообщения хотя бы одной пустой строкой. Обязателен всего один заголовок: Host.

Под каждый заголовок сервер заводит серверную переменную.

Часть заголовков предназначена серверу, другая часть будет полезна разработчикам. Например, существуют специальные серверные переменные HTTP_имя-заголовка.

Пример запроса

GET /other/index.html HTTP/1.1
Host: www.dnzl.ru
User-Agent: Mozilla/5.0 ...
Referer: http://....
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: IsCookieEnabled=1

Ответ сервера HTTP

Сервер отвечает на каждый запрос такими ответами:

HTTP/1.1 200 OK

Сначала сервер передает версию протокола, затем идет СТАТУС (200 - ок, 304 – страница отсутствует и т.д.). Затем идет масса заголовков. Затем ставится пустая строка и передается html страница, например.

Возможный статус сервера:

  • 1xx – инфо-е сообщение
  • 2xx – успешное выполнение команды
  • 3xx – переадресация
  • 4xx – ошибка на стороне клиента
  • 5xx – ошибка на стороне сервера

Все заголовки можно увидеть посредством замечательного плагина браузера firefox firebug (вкладка СЕТЬ – ВСЕ ¬– выбираем запрос и просматриваем ‛заголовки ответа‛ и ‛заголовки запроса‛).

Пример ответа

HTTP/1.1 200 OK
Accept-Ranges:   bytes
Connection:  keep-alive
Content-Language:    ru
Content-Length:  7348
Content-Type:    image/png
Date:    Tue, 18 Jun 2013 21:23:01 GMT
Etag:    "5fa053-1cb4-4dd8f3ea67200"
Keep-Alive:  timeout=10
Last-Modified:   Sat, 25 May 2013 18:40:08 GMT
Server:  nginx/1.2.6

<html >
....
<html >

Запрос HEAD

Метод HEAD тоже самое что и метод GET, но в ответ сервер возвращает только заголовки без контента.

ПОЛЕЗНО ЗНАТЬ: header() используется для отправки заголовков HTTP в браузер. Помните, что функцию header() можно вызывать только если клиенту еще не передавались данные. То есть она должна идти первой в выводе, перед ее вызовом не должно быть никаких HTML тэгов, пустых строк и т.п.

Комментарии к статье

Добавить комментарий

анализ спермограммы в Москве цены;Купить комнату м. Молодежная: разработка дизайна интерьера. Школа керамической флористики.;центрифуга tagler