Validate External Links/HTTP codes
ValExtLinks prints the HTTP response code for each link (except EI and IW links) in parentheses after the OK/NG/RD status of the link. Based on this Wikipedia list, following are the codes understood by ValExtLinks. When there's no HTTP response code because of a failure in the Unix tool 'curl' which queries each link, you'll see "(000-xx)", where the one- or two-digit number after the dash is the 'curl' error code.
2xx: Success
This class of status codes indicates the action requested by the client was received, understood, accepted, and processed successfully.
- 200 OK
- Standard response for successful HTTP requests.
3xx: Redirection
This class of status code indicates the client must take additional action to complete the request. Many of these status codes are used in URL redirection.
- 301 Moved Permanently
- This and all future requests should be directed to the given URI.
- 302 Found
- This is an example of industry practice contradicting the standard. The HTTP/1.0 specification required the client to perform a temporary redirect (the original describing phrase was "Moved Temporarily"), but popular browsers implemented 302 with the functionality of a 303 See Other. Therefore, HTTP/1.1 added status codes 303 and 307 to distinguish between the two behaviors. However, some Web applications and frameworks use the 302 status code as if it were the 303.
- 303 See Other
- The response to the request can be found under another URI using a GET method.
- 307 Temporary Redirect
- The request should be repeated with another URI; however, future requests should still use the original URI.
- 308 Permanent Redirect
- The request and all future requests should be repeated using another URI.
4xx: Client Errors
This class of status codes is intended for situations in which the client seems to have erred.
- 400 Bad Request
- The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax).
- 401 Unauthorized
- Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided.
- 403 Forbidden
- The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource.
- 404 Not Found
- The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.
- 405 Method Not Allowed
- A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
- 406 Not Acceptable
- The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.
- 410 Gone
- Indicates that the resource requested is no longer available and will not be available again. This should be used when a resource has been intentionally removed and the resource should be purged. Upon receiving a 410 status code, the client should not request the resource in the future.
- 418 I'm a teapot
- This is a joke response code used by some sites. Probably equivalent to a 200.
5xx: Server Errors
These codes mean that the server failed to fulfill an apparently valid request.
- 500 Internal Server Error
- A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.
- 501 Not Implemented
- The server either does not recognize the request method, or it lacks the ability to fulfill the request. Usually this implies future availability (e.g., a new feature of a web-service API).
- 502 Bad Gateway
- The server was acting as a gateway or proxy and received an invalid response from the upstream server.
- 503 Service Unavailable
- The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state.
- 530 Site is frozen
- Some Internet companies use this to indicate that a site is down, but usage is non-standard, so the site will have to be tried again later to see if the outage is due to a frozen account or something else.