Где контент-сайты хранят свой контент? - PullRequest
1 голос
/ 19 июля 2009

Сайты, такие как cnn.com или foxnews.com.
Где они хранят все статьи? В HTML-файлы? В базе данных?
Логичнее хранить все в БД, но как сгенерировать статическую ссылку на что-то внутри БД?

Дело не в том, что у них динамическая загрузка страницы, например: LoadArticle.aspx? ArticleID = 123, каждая статья имеет свой собственный адрес.

Пожалуйста, объясните, как это делается.

Ответы [ 8 ]

4 голосов
/ 19 июля 2009

Они используют специальную библиотеку управления контентом VoodooLib.dll.

Серьезно, когда вы записываете что-то в базу данных, вы обычно генерируете какой-то уникальный идентификатор - например, 123. Он постоянно связывается с этой записью (содержанием статьи). После этого он используется для генерирования того же идентификатора, что и часть URL-адреса, в любое время позже.

Что касается статической ссылки, это просто вопрос Перезапись URL .

Вы генерируете статические ссылки для отображения на странице, потому что они работают намного лучше для SEO. Когда запрос на этот статический URL-адрес попадает на сервер, он заменяется чем-то «дружественным к серверу», а затем обрабатывается.

1 голос
/ 19 июля 2009

То, что URL выглядит «статичным», не означает, что это так; они могут использовать что-то вроде mod_rewrite или IIS ISAPI, чтобы сделать URL более удобными для поисковых систем.

Однако для крупных новостных сайтов, о которых вы упомянули, они вполне могут генерировать страницы статически, чтобы предотвратить перегрузку базы данных повторяющимися запросами на ту же статью.

1 голос
/ 19 июля 2009

Возможно, они используют какую-то форму Система управления контентом (CMS). Есть много разных - большинство хранит фактический контент в базе данных или в виде XML (некоторые хранят XML в базе данных). Они будут либо публиковать этот контент как статические HTML-страницы, либо, чаще, сейчас, как динамические страницы, которые кэшируются. Многие используют так называемые «дружественные URL», которые представляют собой виртуальные адреса, которые сопоставляются с фактическим физическим путем к файлу с использованием методов перезаписи URL .

Обратите внимание, что вы не можете определить, является ли страница динамической или статической, просто по расширению. Вполне возможно, что динамические страницы заканчиваются расширением .html.

0 голосов
/ 20 июля 2009

Это делается с помощью методов переписывания модов.

Вот статья о движке переписывания модов: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

А вот и их "гид": http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

Надеюсь, это поможет. Это должно послужить хорошей отправной точкой. Гудлак.

0 голосов
/ 19 июля 2009

Я не знаю, почему все остальные авторы, похоже, предполагают, что для создания дружественных URL-адресов необходима некоторая форма переписывания URL. Это совсем не так.

Вполне возможно написать код веб-обслуживания, который разбивает URL-адрес на параметры - например, год, месяц, заголовок - и передает его непосредственно к коду, который получает контент из базы данных, без необходимости перезаписывать URL-адрес. Большинство современных веб-фреймворков, таких как Django и Rails, включают эту функциональность "из коробки".

0 голосов
/ 19 июля 2009

Просто проверяя cnn.com, ссылки на статьи в них

  • год
  • Местоположение (США или МИР / specificlocationid)
  • месяц
  • день
  • Название статьи.

Вся эта информация в совокупности может быть использована для однозначной идентификации любой статьи (даже меньше, вероятно, это действительно необходимо). Адрес страницы динамической загрузки контента может быть легко скрыт с помощью некоторого метода переписывания URL-адреса, и затем информация в запрошенном URL-адресе используется для определения того, какую статью в БД следует обслуживать.

0 голосов
/ 19 июля 2009

Тот факт, что страница имеет нормальный URL-адрес, не означает, что она не отображает динамический контент. С модулем Apache mod_rewrite можно манипулировать URL-адресами. Так, например, страницу типа http://www.domain.tld/permalink/12345/message-title-slug можно внутренне преобразовать в http://www.domain.tld/permalink/index.php?id=12345&slug=message-title-slug.

Я не знаю точно, что используют cnn.com и foxnews.com, но могу поспорить, что они используют систему управления контентом (CMS), которая динамически обслуживает все страницы, причем контент хранится либо в базе данных, либо в файловой системе. и с авторизацией / публикацией всего, что выполняется через конкретную CMS.

0 голосов
/ 19 июля 2009

Посмотрите на URl этой страницы, он не имеет xxx.aspx? Some-query-string

Вы используете дружественные URL-адреса.

Чтобы сделать что-то подобное, одним из распространенных способов является использование перезаписи URL и / или какого-либо специального HTTPModule

Вот хороший справочник: http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...