| // Copyright 2010 Google Inc. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Author: jmarantz@google.com (Joshua Marantz) |
| // Protobufs to help with http caching |
| |
| syntax = "proto2"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| package net_instaweb; |
| |
| // NEXT ID: 3 |
| message NameValue { |
| required string name = 1; |
| required string value = 2; |
| }; |
| |
| // NEXT ID: 15 |
| message HttpResponseHeaders { |
| optional int32 status_code = 1; |
| optional string reason_phrase = 2; |
| optional int32 minor_version = 3; |
| optional int32 major_version = 4 [ default = 1 ]; |
| optional int64 expiration_time_ms = 5; |
| optional int64 date_ms = 6; // Timestamp from Date header. |
| optional int64 last_modified_time_ms = 10; |
| optional int64 cache_ttl_ms = 11; |
| optional bool browser_cacheable = 7; |
| optional bool proxy_cacheable = 8; |
| optional bool requires_browser_revalidation = 13; |
| optional bool requires_proxy_revalidation = 14; |
| repeated NameValue header = 9; |
| optional bool is_implicitly_cacheable = 12; |
| }; |
| |
| // Contains everything in HttpRequest except url itself. |
| // The name HttpRequestHeaders is a misnomer. |
| // NEXT ID: 6 |
| message HttpRequestHeaders { |
| |
| // NEXT ID: 11 |
| enum Method { |
| OPTIONS = 1; |
| GET = 2; |
| HEAD = 3; |
| POST = 4; |
| PUT = 5; |
| DELETE = 6; |
| TRACE = 7; |
| CONNECT = 8; |
| INVALID = 9; // Originally ERROR, but that is a macro in C++. |
| PATCH = 10; |
| PURGE = 11; |
| }; |
| |
| // Note: the URL is not part of this protobuf, as it's typically kept |
| // outside the context of the header structure (e.g. a formal arg to |
| // a Fetch function or the key to a cache). |
| |
| optional int32 minor_version = 1; |
| optional int32 major_version = 2 [ default = 1 ]; |
| optional Method method = 3 [ default = GET ]; |
| repeated NameValue header = 4; |
| |
| // RFC 2616 sec 4.3 (encoded message body) |
| optional bytes message_body = 5; |
| }; |