http_status_codes table

I've been doing a lot of web scraping for various AI tools. This includes model training, and search functionality. One thing I find myself doing is generating lots of prototypes. Each prototype requires me to write a new db schema and one thing they share in common is the need for a http_status_codes table to record the final status response of a web page. You could store the value as an int, or string, or even as json to make it queryable. But I feel taking the time to create and populate a table of the code is much more advantageous for queries and for indexing. So to help future Brian I have pasted the code used to generate this table below.

This code is generated by an AI model. Which is a great use for models, as this is just boilerplate. It would make no sense for me to type this out. Mundane stuff like this is a clear use case for AI. The overall architecture of the project however is my job.

Run the below script in MariaDB like so mariadb -u uname -p dbname < http_status_codes.sql

CREATE TABLE IF NOT EXISTS http_status_codes (
    code SMALLINT PRIMARY KEY,
    description VARCHAR(255) NOT NULL
) COMMENT = 'Standard HTTP status codes with brief descriptions';

INSERT INTO http_status_codes (code, description) VALUES
-- 1xx Informational
(100, 'Continue'),
(101, 'Switching Protocols'),
(102, 'Processing'),
(103, 'Early Hints'),

-- 2xx Success
(200, 'OK'),
(201, 'Created'),
(202, 'Accepted'),
(203, 'Non-Authoritative Information'),
(204, 'No Content'),
(205, 'Reset Content'),
(206, 'Partial Content'),
(207, 'Multi-Status'),
(208, 'Already Reported'),
(226, 'IM Used'),

-- 3xx Redirection
(300, 'Multiple Choices'),
(301, 'Moved Permanently'),
(302, 'Found'),
(303, 'See Other'),
(304, 'Not Modified'),
(305, 'Use Proxy'),
(307, 'Temporary Redirect'),
(308, 'Permanent Redirect'),

-- 4xx Client Errors
(400, 'Bad Request'),
(401, 'Unauthorized'),
(402, 'Payment Required'),
(403, 'Forbidden'),
(404, 'Not Found'),
(405, 'Method Not Allowed'),
(406, 'Not Acceptable'),
(407, 'Proxy Authentication Required'),
(408, 'Request Timeout'),
(409, 'Conflict'),
(410, 'Gone'),
(411, 'Length Required'),
(412, 'Precondition Failed'),
(413, 'Payload Too Large'),
(414, 'URI Too Long'),
(415, 'Unsupported Media Type'),
(416, 'Range Not Satisfiable'),
(417, 'Expectation Failed'),
(418, 'I\'m a teapot'),
(421, 'Misdirected Request'),
(422, 'Unprocessable Entity'),
(423, 'Locked'),
(424, 'Failed Dependency'),
(425, 'Too Early'),
(426, 'Upgrade Required'),
(428, 'Precondition Required'),
(429, 'Too Many Requests'),
(431, 'Request Header Fields Too Large'),
(451, 'Unavailable For Legal Reasons'),

-- 5xx Server Errors
(500, 'Internal Server Error'),
(501, 'Not Implemented'),
(502, 'Bad Gateway'),
(503, 'Service Unavailable'),
(504, 'Gateway Timeout'),
(505, 'HTTP Version Not Supported'),
(506, 'Variant Also Negotiates'),
(507, 'Insufficient Storage'),
(508, 'Loop Detected'),
(510, 'Not Extended'),
(511, 'Network Authentication Required');

Now if I wanted to link all page responses by status code I can write a query like the one below.

SELECT pr.id, pr.status_code, hsc.description
FROM page_responses pr
LEFT JOIN http_status_codes hsc
ON pr.status_code = hsc.code;

Until next time,

Brian