HTTP requests and responses follow a generic message format that includes a start line, message headers, an optional message body, and optional trailers. The start line indicates the request method and URI for requests or the HTTP version and status code for responses. Headers provide additional metadata about the message, sender, recipient, or content. The body carries request data or response content. Trailers are rarely used and provide additional headers after chunked content.