01: /*
02: * $HeadURL: https://svn.apache.org/repos/asf/httpcomponents/httpcore/tags/4.0-beta1/module-main/src/main/java/org/apache/http/protocol/HttpExpectationVerifier.java $
03: * $Revision: 613298 $
04: * $Date: 2008-01-18 23:09:22 +0100 (Fri, 18 Jan 2008) $
05: *
06: * ====================================================================
07: * Licensed to the Apache Software Foundation (ASF) under one
08: * or more contributor license agreements. See the NOTICE file
09: * distributed with this work for additional information
10: * regarding copyright ownership. The ASF licenses this file
11: * to you under the Apache License, Version 2.0 (the
12: * "License"); you may not use this file except in compliance
13: * with the License. You may obtain a copy of the License at
14: *
15: * http://www.apache.org/licenses/LICENSE-2.0
16: *
17: * Unless required by applicable law or agreed to in writing,
18: * software distributed under the License is distributed on an
19: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20: * KIND, either express or implied. See the License for the
21: * specific language governing permissions and limitations
22: * under the License.
23: * ====================================================================
24: *
25: * This software consists of voluntary contributions made by many
26: * individuals on behalf of the Apache Software Foundation. For more
27: * information on the Apache Software Foundation, please see
28: * <http://www.apache.org/>.
29: *
30: */
31:
32: package org.apache.http.protocol;
33:
34: import org.apache.http.HttpException;
35: import org.apache.http.HttpRequest;
36: import org.apache.http.HttpResponse;
37:
38: /**
39: * Defines an interface to verify whether an incoming HTTP request meets
40: * the target server's expectations.
41: *<p>
42: * The Expect request-header field is used to indicate that particular
43: * server behaviors are required by the client.
44: *</p>
45: *<pre>
46: * Expect = "Expect" ":" 1#expectation
47: *
48: * expectation = "100-continue" | expectation-extension
49: * expectation-extension = token [ "=" ( token | quoted-string )
50: * *expect-params ]
51: * expect-params = ";" token [ "=" ( token | quoted-string ) ]
52: *</pre>
53: *<p>
54: * A server that does not understand or is unable to comply with any of
55: * the expectation values in the Expect field of a request MUST respond
56: * with appropriate error status. The server MUST respond with a 417
57: * (Expectation Failed) status if any of the expectations cannot be met
58: * or, if there are other problems with the request, some other 4xx
59: * status.
60: *</p>
61: *
62: * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>
63: *
64: * @version $Revision: 613298 $
65: *
66: * @since 4.0
67: */
68: public interface HttpExpectationVerifier {
69:
70: void verify(HttpRequest request, HttpResponse response,
71: HttpContext context) throws HttpException;
72:
73: }
|