Отслеживание ошибок
При правильном создании всех ссылок никогда не возникают, так называемые,
«битые ссылки», когда ссылка ведет на файл, путь к которому или
его имя указано неверно. Однако данная ошибка с номером 404 может возникнуть
и просто, когда неправильно пишут адрес страницы. В этом случае, хорошо бы
подсунуть пользователю сообщение об ошибке, чтобы не беспокоился и верил,
что все можно поправить. Для этого создают отдельную веб-страницу, которая
будет показана как раз при возникновении подобной ошибки. Связать воедино
процесс возникновения ошибки и наш файл можно опять же с помощью корневого
.htaccess. В него добавляется следующая строка.
ErrorDocument 404 /err404.html
Файл называется err404.html и размещается в корне сайта, слэш (символ /) перед именем файла пишется обязательно.
Дополнительные файлы
На любом сайте не обойтись и без дополнительных файлов, обычно размещаемых
в корне сайта. Сюда входят файлы, предназначенные для выполнения определенных
задач и имеющие обязательное имя, а также файлы, имя которых определяется
разработчиками.
Обязательные имена
index.html — название главной страницы,
а также веб-страниц, размещаемых в папках, которые должны открываться при их
указании в адресе. Это имя, как уже упоминалось, может меняться в зависимости
от типа веб-сервера и его настроек. Но обычно оно именно такое.
.htaccess — конфигурационный файл веб-сервера
Apache. Указанный сервер является наиболее популярным и распространенным в
мире, поэтому и данный файл можно встретить повсеместно. Бывают, конечно,
исключения.
robots.txt — файл, предназначенный для
поисковых систем. При индексировании сайта, в первую очередь ищется он. Пример
запрета для всех поисковых систем посещать папки сайта cgi-bin и images.
User-agent: *
Disallow: /cgi-bin/
Disallow: /images/
favicon.ico — иконка сайта, она появляется
возле адреса сайта при занесении его в раздел «Избранное» браузера.
Это рисунок размером 16 на 16 пикселов формата ICO.
Необязательные имена
Таблица стилей — ни один сайт уже не обходится без стилей, обычно размещаемых
в отдельном файле. Такое размещение дает несколько преимуществ — легко
изменять вид элементов на всех страницах, меняя параметры лишь в одном месте,
файл кэшируется и загружается быстрее, уменьшается общий объем всех документов.
Файл со стилем обычно имеет расширение css.
Файловая структура диска и ее виды
Видов логических структур существует несколько. Предназначены они для различных архитектур дисковых хранилищ. Среди них:
- Одноуровневая (линейная) – это обычая последовательность имен файлов. Часто она используется для небольших по объему дисков, на которых может располагаться совсем малое количество элементов. Доступ к информации на таких носителях осуществляется через простое обращение по имени, поскольку никаких вложенных папок, где могли находиться данные – нет.
- Многоуровневая (иерархическая) – многоуровневая последовательность папок и файлов. Используется на дисковых хранилищах, на которых хранятся сотни или тысячи элементов. Она имеет древовидное построение. Начальный или корневой каталог содержит вложенные каталоги первого уровня, которые в свою очередь могут содержать папки второго уровня и так далее. В каталоге любого уровня предусмотрено хранение файлов.
Для доступа к данным в многоуровневый каталогах следует указывать их адрес (путь к данным), который записывается через обратный слеш («\»). Например, если корневой каталог имеет наименование «С», а папка второго уровня, в которой хранится файл 1.txt, называется «Новая папка», то путь к нему будет таким : С:\Новая папка\1.txt.
В Windows, с точки зрения ФС, во главе всех каталогов «стоит» папка «Рабочий стол», далее идут «Мой компьютер», «Корзина», «Сеть». «Мой компьютер» же состоит из дисков, установленных в персональном компьютере.
Файловая структура сайта
Вернемся теперь к сайту, файловую структуру которого следует создать. Здесь
существует два различных подхода. В первом случае, каждому разделу соответствует
html-документ, находящийся в корне сайта. Путь к нему будет выглядеть как www.mysite.ru/optimize.html.
Альтернативный вариант — создание папок, которые будут соответствовать
определенным разделам. В каждой папке размещается файл index.html. Поскольку
этот файл указывать в адресе не обязательно, то путь будет выглядеть как www.mysite.ru/optimize.
На рис. 1 и рис. 2 показаны два набора организации файлов на сайте.
Рис. 1. Организация документов по файлам | Рис. 2. Организация файлов по каталогам |
Какую структуру предпочесть зависит лишь от воли создателей сайта.
Файловая система. Папки и файлы. Имя, тип, путь доступа к файлу.
Файл.
Все программы и данные хранятся в долговременной (внешней) памяти компьютера в виде файлов.
Файл — это определенное количество информации (программа или данные), имеющее имя и хранящееся в долговременной (внешней) памяти.
Имя файла состоит из двух частей, разделенных точкой: собственно имя файла и расширение, определяющее его тип (программа, данные и т. д.). Собственно имя файлу дает пользователь, а тип файла обычно задается программой автоматически при его создании.
Тип файла | Расширение |
Исполняемые программы | exe, com |
Текстовые файлы | txt, rtf, |
Графические файлы | bmp, gif, jpg, png, pds |
Web-страницы | htm, html |
Звуковые файлы | wav, mp3, midi, kar, ogg |
Видеофайлы | avi, mpeg |
Код (текст) программы на языках программирования |
bas, pas, cpp |
В различных операционных системах существуют различные форматы имен файлов. В операционной системе MS-DOS собственно имя файла должно содержать не более восьми букв латинского алфавита и цифр, а расширение состоит из трех латинских букв, например:
proba.txt
В операционной системе Windows имя файла может иметь до 255 символов, причем допускается использование русского алфавита, например:Единицы измерения информации.doc
Файловая система.
На каждом носителе информации (гибком, жестком или лазерном диске) может храниться большое количество файлов. Порядок хранения файлов на диске определяется установленной файловой системой.
Файловая система — это система хранения
файлов и организации каталогов.
Для дисков с небольшим количеством файлов (до нескольких десятков) удобно применять одноуровневую файловую систему, когда каталог (оглавление диска) представляет собой линейную последовательность имен файлов.
Если на диске хранятся сотни и тысячи файлов, то для удобства поиска файлы организуются в много уровневую иерархическую файловую систему, которая имеет «древовидную» структуру.
Начальный, корневой, каталог содержит вложенные каталоги 1-го уровня, в свою очередь, в каждом из них бывают вложенные каталоги 2-го уровня и т. д. Необходимо отметить, что в каталогах всех уровней могут храниться и файлы.
Путь к файлу.
Для того чтобы найти файл в иерархической
файловой структуре необходимо указать путь
к файлу. В путь к файлу входят записываемые
через разделитель «\» логическое имя
диска и последовательность имен вложенных
друг в друга каталогов, в последнем из
которых находится данный нужный файл.
Например, путь к файлам на рисунке можно
записать так:
C:\basic\
C:\Музыка\Пикник\
Полное имя файла.
Путь к файлу вместе с именем файла
называют полным именем файла.
Пример полного имени файлов:
C:\basic\prog123.bas
C:\Музыка\Пикник\Иероглиф.mp3
Операции над файлами.
В процессе работы на компьютере над файлами чаще всего производятся следующие операции: копирование (копия файла помещается в другой каталог); перемещение (сам файл перемещается в другой каталог); удаление (запись о файле удаляется из каталога); переименование (изменяется имя файла).
Графическое представление файловой системы.
Иерархическая файловая система MS-DOS, содержащая каталоги и файлы, представлена в операционной системе Windows с помощью графического интерфейса в форме иерархической системы папок и документов. Папка в Windows является аналогом каталога MS-DOS. Однако иерархические структуры этих систем несколько различаются. В иерархической файловой системе MS-DOS вершиной иерархии объектов является корневой каталог диска, который можно сравнить со стволом дерева — на нем растут ветки (подкаталоги), а на ветках располагаются листья (файлы).
В Windows на вершине иерархии папок находится папка Рабочий стол. (Следующий уровень представлен папками Мой компьютер, Корзина и Сетевое окружение (если компьютер подключен к локальной сети).
Что такое файловая система
Обычно вся информация записывается, хранится и обрабатывается на различных цифровых носителях в виде файлов. Далее, в зависимости от типа файла, кодируется в виде знакомых расширений – *exe, *doc, *pdf и т.д., происходит их открытие и обработка в соответствующем программном обеспечении. Мало кто задумывается, каким образом происходит хранение и обработка цифрового массива в целом на соответствующем носителе.
Операционная система воспринимает физический диск хранения информации как набор кластеров размером 512 байт и больше. Драйверы файловой системы организуют кластеры в файлы и каталоги, которые также являются файлами, содержащими список других файлов в этом каталоге. Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.
Запись файлов большого объема приводит к необходимости фрагментации, когда файлы не сохраняются как целые единицы, а делятся на фрагменты. Каждый фрагмент записывается в отдельные кластеры, состоящие из ячеек (размер ячейки составляет один байт). Информация о всех фрагментах, как части одного файла, хранится в файловой системе.
Файловая система связывает носитель информации (хранилище) с прикладным программным обеспечением, организуя доступ к конкретным файлам при помощи функционала взаимодействия программ API. Программа, при обращении к файлу, располагает данными только о его имени, размере и атрибутах. Всю остальную информацию, касающуюся типа носителя, на котором записан файл, и структуры хранения данных, она получает от драйвера файловой системы.
На физическом уровне драйверы ФС оптимизируют запись и считывание отдельных частей файлов для ускоренной обработки запросов, фрагментации и «склеивания» хранящейся в ячейках информации. Данный алгоритм получил распространение в большинстве популярных файловых систем на концептуальном уровне в виде иерархической структуры представления метаданных (B-trees). Технология снижает количество самых длительных дисковых операций – позиционирования головок при чтении произвольных блоков. Это позволяет не только ускорить обработку запросов, но и продлить срок службы HDD. В случае с твердотельными накопителями, где принцип записи, хранения и считывания информации отличается от применяемого в жестких дисках, ситуация с выбором оптимальной файловой системы имеет свои нюансы.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Структура файла
WAV-файл использует стандартную RIFF-структуру, которая группирует содержимое файла из отдельных секций (chunks) – формат выборок аудиоданных, аудиоданные, и т.п. Каждая секция имеет свой отдельный заголовок и отдельные данные. Заголовок секции указывает на тип секции и количество содержащихся в секции байт. Такой принцип организации позволяет программам анализировать только необходимые секции, пропуская остальные, которые неизвестны, или которые не требуют обработки. Некоторые секции могут иметь в своем составе подсекции (sub-chunks). Например, как можно увидеть на рисунке ниже, описывающем формат простейшего WAV-файла, секции «» и «» являются подсекциями секции «».
Рисунок 1 – Формат простейшего WAV-файла
Еще одна особенность, связанная с секциями файла RIFF, – адреса начала секций должны быть выровнены на размер слова (2 байта). Это означает, что общий размер секции должен быть кратен 2. Если секция содержит нечетное число байт данных, то в конец данных секции добавляется дополнительный нулевой байт данных. Этот дополнительный байт не учитывается в размере секции в заголовке, таким образом, программа всегда должна учитывать выравнивание для расчета смещения начала следующей секции.
Логические «файлы»
Я упоминал, что термин «файл» я приберегу до лучших времен. Эти времена настали
Вся конфигурация хранится в контейнере в виде файлов. Если мы вспомним школьный курс информатики, то вспомним, что «файл», говорили нам – это именованный документ.
Файл отличается от «документа» тем, что у него есть имя, и по этому имени к нему можно обращаться. Если мы будем разбирать содержимое конфигурации и строить дерево метаданных, то найдем внутри файлов очень много упоминаний других файлов. Процедура чтения конфигурации оперирует именами файлов и ссылается на них по имени.
Если подвести итоги, то можно сказать следующее: в контейнере лежат разные документы, но некоторые из них имеют имя. Такие документы называются «файлы» и они носят не служебный, а непосредственно прикладной характер. Именно файлы хранят информацию о метаданных конфигурации.
Компоненты файла
Каждый файл состоит из двух документов:
- Документ атрибутов, который содержит имя файла и даты создания/изменения
- Документ содержимого, который содержит собственно тело файла
Как решить проблему
Поскольку при обращении к файлу система воспринимает путь к нему как имя, его не получится убрать из глубокой папки и сохранить на рабочем столе для легкого доступа. Всегда будет возникать эта ошибка, поэтому решение проблемы кроется в изменении длины пути. Сделать это можно несколькими способами.
Переименование
Помня об ограничении длины в 255 символов, нужно сократить названия некоторых папок, через которые пролегает путь к файлу. Самый простой вариант – задать им числовые имена вместо слов. Например: «1», «2», «3».
Если в этих папках хранится другая важная информация, а не один файл, нужны понятные имена, по которым вы сможете ориентироваться в будущем.
Попробуйте сократить названия, используя несколько букв, а не целые слова. Например: вместо «фотографии» – «фото», вместо «оборудование» – «оборуд». Задайте и конечному файлу более короткое имя. После этого повторите попытку открытия или удаления.
Выключение ограничения
Ограничение в 255 символов можно просто отключить в реестре ОС, если не планируется взаимодействие в другими компьютерами по общей сети. Для этого проделайте следующее:
- Введите команду WIN+R.
- В открывшейся строке напишите regedit и нажмите Enter.
- Запустится окно с реестром. Выберите папку HKEY_LOCAL_MACHINE.
- В ней пройдите по пути, указанному на фото до файла Long Paths Enable.
- Задайте ему значение «1».
После этого можно создавать хоть 20 папок, вложенных друг в друга – все файлы будут откликаться адекватно, поскольку исчезнет ограничение.
Unlocker
Это бесплатное приложение, при помощи которого можно работать с файлами, заблокированными ОС. Программа позволяет напрямую удалить или скопировать и переместить файл, не учитывая размер разрешенного имени.
Total Commander
Программа имеет закрытый исходный код и выполняет роль файлового менеджера. Она создает собственную «среду» внутри операционной системы и предоставляет путь к файлам, закрытый для штатных средств Windows. Скачайте программу, ознакомьтесь со структурным деревом каталога, найдите свой файл в привычном месте или через поиск.
Архиватор 7-Zip
Программа 7-Zip предназначена для архивирования файлов, но у нее есть встроенный менеджер. Он не учитывает длину пути к конечному файлу, поэтому открывает доступ к работе с теми данными, которые не поддерживаются штатной файловой системой.
Скачайте архиватор, запустите менеджер. В открывшемся окне удаляйте, копируйте файлы с длинным путем или создавайте новые папки и помещайте туда нужные фото, музыку, видео. В директории это будет отображаться корректно.
Сокращение пути через ссылку
У каждой папки в свойствах есть указатель расположения в разделе «Общее». При обращении к папке задействуется этот путь. Сократить его можно, заменив укороченной ссылкой.
Для этого:
- В поле поиска на панели задач введите «Командная строка».
- В черном окне введите mklink /D «C:\короткий путь».
- Далее скопируйте полный путь из свойств папки и вставьте его сюда же.
Система создаст короткую ссылку и будет обращаться к ней, а не к длинному полному названию. После этого можно создавать новые файлы – короткий путь будет автоматически привязываться к ним.
Структура файловой системы
Ubuntu поддерживает стандарт FHS, описывающий какая информация должна находится в том или ином месте «дерева». Ниже приведена таблица с кратким описанием основных директорий.
Директория | Описание |
---|---|
Корневая директория, содержащая всю файловую иерархию. | |
/bin/ | Основные системные утилиты, необходимые как в однопользовательском режиме, так и при обычной работе всем пользователям (например: cat, ls, cp). |
/boot/ | Загрузочные файлы (в том числе файлы загрузчика, ядро и т.д.). Часто выносится на отдельный раздел. |
/dev/ | Основные файлы устройств системы (например физические устройства sata винчестеры /dev/sda, видео камеры или TV-тюнеры /dev/video или псевдоустройства, например «чёрные дыры» /dev/null, /dev/zero ). |
/etc/ | Общесистемные конфигурационные файлы, лежат в корне директории и файлы конфигурации установленных программ (имя происходит от et cetera). |
/etc/X11/ | Файлы конфигурации X Window System версии 11. |
/etc/apt/ | Файлы конфигурации пакетного менеджера Apt. |
/etc/samba/ | Файлы конфигурации сервера Samba, расшаривающего файлы по сети с windows машинами. |
/home/ | Содержит домашние директории пользователей, которые в свою очередь содержат персональные настройки и данные пользователя. Часто размещается на отдельном разделе. |
/lib/ | Основные библиотеки, необходимые для работы программ из /bin/ и /sbin/. |
/media/ | Точки монтирования для сменных носителей, таких как CD-ROM, DVD-ROM, flash дисков. |
/opt/ | Дополнительное программное обеспечение. |
/proc/ | Виртуальная файловая система, представляющая состояние ядра операционной системы и запущенных процессов в виде каталогов файлов. |
/root/ | Домашняя директория пользователя root. |
/sbin/ | |
/srv/ | Данные, специфичные для окружения системы. |
/tmp/ | Временные файлы (см. также /var/tmp). |
/usr/ | Вторичная иерархия для данных пользователя; содержит большинство пользовательских приложений и утилит, используемых в многопользовательском режиме. Может быть смонтирована по сети только для чтения и быть общей для нескольких машин. |
/usr/bin/ | Дополнительные программы для всех пользователей, не являющиеся необходимыми в однопользовательском режиме. |
/usr/include/ | Стандартные заголовочные файлы. |
/usr/lib/ | Библиотеки для программ, находящихся в /usr/bin/ и /usr/sbin/. |
/usr/sbin/ | Дополнительные системные программы (такие как демоны различных сетевых сервисов). |
/usr/share/ | Архитектурно-независимые общие данные. |
/usr/src/ | Исходные коды (например, здесь располагаются исходные коды ядра). |
/usr/local/ | Третичная иерархия для данных, специфичных для данного хоста. Обычно содержит такие поддиректории, как bin/, lib/, share/. Она пригодится, когда /usr/ используется по сети. |
/var/ | Изменяемые файлы, такие как файлы регистрации (log-файлы), временные почтовые файлы, файлы спулеров. |
/var/cache/ | Данные кэша приложений. Сюда скачиваются пакеты перед их установкой в систему, здесь же они какое-то время и хранятся |
/var/lib/ | Информация о состоянии. Постоянные данные, изменяемые программами в процессе работы (например, базы данных, метаданные пакетного менеджера и др.). |
/var/lock/ | Lock-файлы, указывающие на занятость некоторого ресурса. |
/var/log/ | Различные файлы регистрации (log-файлы). |
/var/mail/ | Почтовые ящики пользователей. |
/var/run/ | Информация о запущенных программах (в основном, о демонах). |
/var/spool/ | Задачи, ожидающие обработки (например, очереди печати, непрочитанные или неотправленные письма). |
/var/tmp/ | Временные файлы, которые должны быть сохранены между перезагрузками. |
/var/www/ | Директория веб-сервера Apache, всё что находится внутри транслируется им в интернет (конфигурация по-умолчанию) |
Структура блока
Блок состоит из заголовка и тела. В заголовке указывается общий размер всего документа, размер текущего блока и адрес (позиция в файле) следующего блока. Сразу за заголовком идет тело блока – собственно, те данные, которые нам нужны. Тело блока имеет ровно ту длину (в байтах), которая указана в заголовке.
Внутри контейнера тут и там встречается волшебная константа, обозначающая некую «пустоту» – это число 0x7fffffff.
Когда мы собираем документ из блоков, то смотрим в заголовке на адрес следующего блока. Если он равен 0x7fffffff, то «следующего» блока нет, этот – последний.
Константа 0x7fffffff — это значение INT_MAX, т.е. максимальное значение 4-байтового целого числа со знаком.
Какой файл загружать первым
DirectoryIndex index.ШТМЛ index.htm
Где через пробел указываются имена файлов, которые следует просматривать на
предмет наличия и запускать автоматически. После этого, при указании пути к
разным файлам и папками, в браузере будут открываться файлы, как показано
в таблице (указание протокола http:// для краткости
опущено).
Путь | Что запускается |
---|---|
www.mysite.ru | www.mysite.ru/index.ШТМЛ |
www.mysite.ru/16.ШТМЛ | www.mysite.ru/16.ШТМЛ |
www.mysite.ru/16/ | www.mysite.ru/16/index.ШТМЛ |
www.mysite.ru/1/6 | www.mysite.ru/1/6/index.ШТМЛ |
Как видно из таблицы, даже если путь к файлу указан не полностью, web-сервер
сам подставит недостающие значения. Этим можно применить, создавая ссылки
на разные файлы, на их работоспособность это не скажется.
Замечания
файл .htaccess пишется без всякого расширения с обязательной
точкой в начале имени;
.htaccess может не работать на некоторых серверах;
неполные пути, как показано в таблице, работают только под управлением web-сервера,
на локальном компьютере этот фокус не пройдет;
если файл index.ШТМЛ отсутствует в указанной папке, браузер покажет
список файлов, которые в ней содержатся.
Зачем нужно монтирование
С помощью такого подхода — когда любой диск может быть любой папкой в системе, можно делать очень гибкую настройку. Самый частый пример, встречающийся на практике: файлы пользователя хранятся в папке /home/имя_пользователя/, например, у меня это папка /home/mial/. При установке операционной системы я могу сделать так, что мой второй или третий диск (а не системный) будет смонтирован в точку /home/mial/. То есть вся операционная система будет располагаться на одном диске, а все мои пользовательские файлы — на другом. Что это даёт? В случае переустановки системы, я вновь настрою монтирование диска с моими файлами в папку /home/mial/ и в результате в новой, только что установленной системе, уже будут на месте все мои документы, фотографии и прочее!
Поскольку часто узким местом в мощных компьютерах является скорость чтения с диска, то на на серверах с высокой нагрузкой практикуется перенос файлов баз данных (например, /var/lib/mysql/ на другой диск), возможен перенос файлов сервера (/srv/http/) на третий диск, файлов логов (/var/log/httpd/) на ещё один диск и т. д. Это позволяет добиться того, что данные из баз данных считываются независимо от записи журналов, то есть пока выполняются операции чтения-записи для одного процесса, другому процессу не нужно ждать своей очереди — всё выполняется одновременно.
Ещё монтирование позволяет выбрать различные режимы, например, диск можно смонтировать в режиме «только чтение» — в результате с него можно будет просматривать файлы, но испортить этот диск невозможно.
В общем, несмотря на то, что монтирование является чем-то непривычным для пользователей Windows, это потрясающая функция! Причём ничего сложного в этом нет, если понять суть.
Краткий итог по теоретической части
- Файл CF(EPF/ERF) записан в формате «контейнера»
- Контейнер начинается с заголовка
- Все содержимое контейнера, за исключением заголовка, записано в виде «документов»
- Документ может быть разбит на блоки
- Документ начинается с заголовка блока, по которому можно узнать, как прочитать весь документ целиком
- Сразу за заголовком контейнера идет документ оглавления
- Оглавление, это набор записей, которые указывают на «файлы» внутри контейнера
- Каждый файл состоит из двух документов – документа атрибутов, где указано имя этого файла и документа содержимого, где, собственно, расположены данные файла.
- Каждая запись оглавления содержит 2 адреса. Первый – адрес документа атрибутов файла, второй – адрес документа содержимого.
- Контейнер может содержать вложенные контейнеры (как бы, вложенные папки)
- Файлы внутри корневого контейнера сжаты по алгоритму Deflate, файлы внутри вложенных контейнеров записаны без сжатия.