/** * Returns the full protocol version text such as {@code "HTTP/1.0"}. */ @Override public String toString() { return getText(); }
@Override public boolean equals(Object o) { if (!(o instanceof HttpVersion)) { return false; } HttpVersion that = (HttpVersion) o; return getMinorVersion() == that.getMinorVersion() && getMajorVersion() == that.getMajorVersion() && getProtocolName().equals(that.getProtocolName()); }
buf.writeBytes(request.getProtocolVersion().toString().getBytes("ASCII")); buf.writeByte(CR); buf.writeByte(LF);
private boolean isHttp10() { return nettyRequest.getProtocolVersion().equals(HttpVersion.HTTP_1_0); }
@Override public String getProtocolName() { return response.getProtocolVersion().getProtocolName(); }
@Override public int getProtocolMajorVersion() { return response.getProtocolVersion().getMajorVersion(); }
@Override public int getProtocolMinorVersion() { return response.getProtocolVersion().getMinorVersion(); }
@Override protected HttpMessage createMessage(String[] initialLine) throws Exception { return new DefaultHttpRequest( HttpVersion.valueOf(initialLine[2]), HttpMethod.valueOf(initialLine[0]), initialLine[1]); }
/** * Returns {@code true} if and only if the connection can remain open and * thus 'kept alive'. This methods respects the value of the * {@code "Connection"} header first and then the return value of * {@link HttpVersion#isKeepAliveDefault()}. */ public static boolean isKeepAlive(HttpMessage message) { String connection = message.headers().get(Names.CONNECTION); boolean close = Values.CLOSE.equalsIgnoreCase(connection); if (close) { return false; } if (message.getProtocolVersion().isKeepAliveDefault()) { return !close; } else { return Values.KEEP_ALIVE.equalsIgnoreCase(connection); } }
@Override public void close() { boolean http10 = request.getProtocolVersion().equals(HttpVersion.HTTP_1_0); boolean close = HttpHeaders.Values.CLOSE.equalsIgnoreCase(request.getHeader(HttpHeaders.Names.CONNECTION)) || (http10 && !HttpHeaders.Values.KEEP_ALIVE.equalsIgnoreCase(request.getHeader(HttpHeaders.Names.CONNECTION))); logger.debug("netty http close = {}", close); if (close) { channel.close(); } }
@Override public String getProtocolName() { return response.getProtocolVersion().getProtocolName(); }
@Override public int getProtocolMajorVersion() { return response.getProtocolVersion().getMajorVersion(); }
@Override public int getProtocolMinorVersion() { return response.getProtocolVersion().getMinorVersion(); }
/** * Returns the {@link HttpVersion} represented by the HTTP version header. */ public static HttpVersion getVersion(int spdyVersion, SpdyHeadersFrame frame) { try { return HttpVersion.valueOf(frame.headers().get(HttpNames.VERSION)); } catch (Exception e) { return null; } }
if (message.getProtocolVersion().isKeepAliveDefault()) { if (keepAlive) { h.remove(Names.CONNECTION);
public int compareTo(HttpVersion o) { int v = getProtocolName().compareTo(o.getProtocolName()); if (v != 0) { return v; } v = getMajorVersion() - o.getMajorVersion(); if (v != 0) { return v; } return getMinorVersion() - o.getMinorVersion(); } }
public static boolean isKeepAlive(HttpMessage message) { return HttpHeaders.isKeepAlive(message) && message.getProtocolVersion().equals(HttpVersion.HTTP_1_1); }
@Override public String toString() { StringBuilder buf = new StringBuilder(); buf.append(getClass().getSimpleName()); buf.append("(version: "); buf.append(getProtocolVersion().getText()); buf.append(", keepAlive: "); buf.append(HttpHeaders.isKeepAlive(this)); buf.append(", chunked: "); buf.append(isChunked()); buf.append(')'); buf.append(StringUtil.NEWLINE); appendHeaders(buf); // Remove the last newline. buf.setLength(buf.length() - StringUtil.NEWLINE.length()); return buf.toString(); }
@Override protected void encodeInitialLine(ChannelBuffer buf, HttpMessage message) throws Exception { HttpResponse response = (HttpResponse) message; buf.writeBytes(response.getProtocolVersion().toString().getBytes("ASCII")); buf.writeByte((byte) ' '); buf.writeBytes(String.valueOf(response.getStatus().getCode()).getBytes("ASCII")); buf.writeByte((byte) ' '); buf.writeBytes(String.valueOf(response.getStatus().getReasonPhrase()).getBytes("ASCII")); buf.writeByte((byte) '\r'); buf.writeByte((byte) '\n'); } }
@Override public String getProtocolName() { return response.getProtocolVersion().getProtocolName(); }