---
name: "Mojo::Message::Response"
section: "3pm"
platform: "linux"
package: "libmojolicious-perl"
version: "9.39+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Mojo::Message::Response"
---

# Mojo::Message::Response(3pm)

HTTP response

## NAME

Mojo::Message::Response - HTTP response

## SYNOPSIS

```
  use Mojo::Message::Response;
  # Parse
  my $res = Mojo::Message::Response->new;
  $res->parse("HTTP/1.0 200 OK\x0d\x0a");
  $res->parse("Content-Length: 12\x0d\x0a");
  $res->parse("Content-Type: text/plain\x0d\x0a\x0d\x0a");
  $res->parse('Hello World!');
  say $res->code;
  say $res->headers->content_type;
  say $res->body;
  # Build
  my $res = Mojo::Message::Response->new;
  $res->code(200);
  $res->headers->content_type('text/plain');
  $res->body('Hello World!');
  say $res->to_string;
```

## DESCRIPTION

Mojo::Message::Response is a container for HTTP responses, based on RFC 7230 \<https://tools.ietf.org/html/rfc7230\> and RFC 7231 \<https://tools.ietf.org/html/rfc7231\>.

## EVENTS

Mojo::Message::Response inherits all events from Mojo::Message.

## ATTRIBUTES

Mojo::Message::Response inherits all attributes from Mojo::Message and implements the following new ones.

### code

```
  my $code = $res->code;
  $res     = $res->code(200);
```

HTTP response status code.

### max\_message\_size

```
  my $size = $res->max_message_size;
  $res     = $res->max_message_size(1024);
```

Maximum message size in bytes, defaults to the value of the `"MOJO_MAX_MESSAGE_SIZE"` environment variable or `2147483648` (2GiB). Setting the value to `0` will allow messages of indefinite size.

### message

```
  my $msg = $res->message;
  $res    = $res->message('OK');
```

HTTP response status message.

## METHODS

Mojo::Message::Response inherits all methods from Mojo::Message and implements the following new ones.

### cookies

```
  my $cookies = $res->cookies;
  $res        = $res->cookies(Mojo::Cookie::Response->new);
  $res        = $res->cookies({name => 'foo', value => 'bar'});
```

Access response cookies, usually Mojo::Cookie::Response objects.

```
  # Names of all cookies
  say $_->name for @{$res->cookies};
```

### default\_message

```
  my $msg = $res->default_message;
  my $msg = $res->default_message(418);
```

Generate default response message for status code, defaults to using "code".

### extract\_start\_line

```
  my $bool = $res->extract_start_line(\$str);
```

Extract status-line from string.

### fix\_headers

```
  $res = $res->fix_headers;
```

Make sure response has all required headers.

### get\_start\_line\_chunk

```
  my $bytes = $res->get_start_line_chunk($offset);
```

Get a chunk of status-line data starting from a specific position. Note that this method finalizes the response.

### is\_client\_error

```
  my $bool = $res->is_client_error;
```

Check if this response has a `"4xx"` status "code".

### is\_empty

```
  my $bool = $res->is_empty;
```

Check if this response has a `"1xx"`, `204` or `304` status "code".

### is\_error

```
  my $bool = $res->is_error;
```

Check if this response has a `"4xx"` or `"5xx"` status "code".

### is\_info

```
  my $bool = $res->is_info;
```

Check if this response has a `"1xx"` status "code".

### is\_redirect

```
  my $bool = $res->is_redirect;
```

Check if this response has a `"3xx"` status "code".

### is\_server\_error

```
  my $bool = $res->is_server_error;
```

Check if this response has a `"5xx"` status "code".

### is\_success

```
  my $bool = $res->is_success;
```

Check if this response has a `"2xx"` status "code".

### start\_line\_size

```
  my $size = $req->start_line_size;
```

Size of the status-line in bytes. Note that this method finalizes the response.

## SEE ALSO

Mojolicious, Mojolicious::Guides, \<https://mojolicious.org\>.
