ht://Check 1.1.0bx-utero README
Copyright (c) 1999-2000 Gabriele Bartolini - Prato - Italy
Some portions Copyright (c) 1995-1999 The ht://Dig Group
$Id: README,v 1.3 2000/08/17 09:30:14 angusgb Exp $

ht://Check is distributed under the GNU General Public License (GPL).
See the COPYING file for license information.

ht://Check is a world-wide-web utility for an intranet or small internet.

You already must have installed MySQL on your system <www.mysql.com>

It can check for dead links, external links, ... and stores every info in
a MySQL Database. And more ...


There's no documentation so far ... :-(

This application has been tested on:

1)
   - RedHat Linux 6.0 2.2.5-15 (gcc version egcs-2.91.66)
   - Intel Pentium II 333 Mhz
   - MySQL 3.22.23b

2)
   - RedHat Linux 6.1 2.2.12-20smp (gcc version egcs-2.91.66)
   - Intel Pentium III 500 Mhz
   - MySQL 3.22.30


ht://Check DATABASE TABLES EXPLANATION
======================================

1) Link
-------

This table contains info on all the links that ht://Check found during the
crawl. Each link is identified by 4 fields, which make up the primary key:
the source URL, the destination URL, the tag position in the document and
the attribute position in the tag definition.

For example, let's suppose our first URL visited is http://www.foo.com/ and
it is as shown below (so simple, I hope you never write it this way):
<HTML>
<A href="http://htcheck.source.net/">
</HTML>

So, http://www.foo.com/ is identified as URL number 1 (IDUrl=1) whereas
http://htcheck.sourceforge.net/ has IDUrl=2.

The A tag has position number 2 in the document, and the attribute which
creates a link is the 'href' with position 1 in the tag.

So our link record's primary key is:
IDUrlSrc=1, IDUrlDest=2, TagPosition=2, AttrPosition=1.

Sometimes, when referencing a URL we use the so called anchors, by specifying
them after a '#' in the URL field. If that's been set, the anchor field of the
table contains that value.

The most interesting fields of the table are LinkType and LinkResult, which are
both enumeration fields. The LinkResult field is set only at the end of the
crawl, after all the URLs have been retrieved.

LinkType field can contain records with these cases:
- 'Normal' (a normal link, like the 'href' ones: this means you have to click
  before accessing it);
- 'Direct' (a direct link is a link that is downloaded, usually, automatically
  by agents, like for example images called by the <IMG src> HTML tag);
- 'Redirection': this is a special case, it's an unusual link, because it's
  an instance of the HTTP redirection, performed by the server (3xx status
  codes). So this kind of records don't have a TagPosition and an AttrPosition
  properly set (obviously, there's no HTML statement issuing this link).
 
LinkResult field can contain records with these cases:
- 'NotChecked': this is the default case, and it's issued when every Link record
  is created; only at the end of the crawl loop, this field can be set properly;
- 'NotRetrieved': the destination URL of the link has not been retrieved;
- 'OK': the link works perfectly. And the anchor, if present, works fine (only
  if the document has been retrieved, and not only checked wether it exists
  or not);
- 'Broken': the link is broken. The destination URL has not been found;
- 'Redirected': the destination URL has been redirected by the HTTP server;
- 'AnchorNotFound': the destination URL has been found and parsed, but
  the link anchor doesn't exist in it.

