@Override public void completeHeader(HttpFields fields, boolean allContentAdded) throws IOException Headers headers = new Headers(); String version = "HTTP/1.1"; headers.put(HTTPSPDYHeader.VERSION.name(ServerHTTPSPDYAsyncConnection.this.version), version);
private void respond(Stream stream, int status) { if (stream.isUnidirectional()) { stream.getSession().rst(new RstInfo(stream.getId(), StreamStatus.INTERNAL_ERROR)); } else { Headers headers = new Headers(); headers.put(HTTPSPDYHeader.STATUS.name(version), String.valueOf(status)); headers.put(HTTPSPDYHeader.VERSION.name(version), "HTTP/1.1"); stream.reply(new ReplyInfo(headers, true)); } }
Headers headers = new Headers(replyInfo.getHeaders(), false);
Headers headers = new Headers(clientSynInfo.getHeaders(), false);
@Override public void onReply(final Stream stream, ReplyInfo replyInfo) { logger.debug("S -> P {} on {}", replyInfo, stream); short serverVersion = stream.getSession().getVersion(); Headers headers = new Headers(replyInfo.getHeaders(), false); addResponseProxyHeaders(stream, headers); customizeResponseHeaders(stream, headers); short clientVersion = this.clientStream.getSession().getVersion(); convert(serverVersion, clientVersion, headers); this.replyInfo = new ReplyInfo(headers, replyInfo.isClose()); if (replyInfo.isClose()) reply(stream); }
private Headers createPushHeaders(Headers.Header scheme, Headers.Header host, String pushResourcePath) { final Headers pushHeaders = new Headers(); if (version == SPDY.V2) pushHeaders.put(HTTPSPDYHeader.URI.name(version), scheme.value() + "://" + host.value() + pushResourcePath); else { pushHeaders.put(HTTPSPDYHeader.URI.name(version), pushResourcePath); pushHeaders.put(scheme); pushHeaders.put(host); } pushHeaders.put(HTTPSPDYHeader.STATUS.name(version), "200"); pushHeaders.put(HTTPSPDYHeader.VERSION.name(version), "HTTP/1.1"); return pushHeaders; }
private Headers createRequestHeaders(Headers.Header scheme, Headers.Header host, Headers.Header uri, String pushResourcePath) { final Headers requestHeaders = new Headers(); requestHeaders.put(HTTPSPDYHeader.METHOD.name(version), "GET"); requestHeaders.put(HTTPSPDYHeader.VERSION.name(version), "HTTP/1.1"); requestHeaders.put(scheme); requestHeaders.put(host); requestHeaders.put(HTTPSPDYHeader.URI.name(version), pushResourcePath); String referrer = scheme.value() + "://" + host.value() + uri.value(); requestHeaders.put("referer", referrer); // Remember support for gzip encoding requestHeaders.put(headers.get("accept-encoding")); requestHeaders.put("x-spdy-push", "true"); return requestHeaders; }
@Override public StreamFrameListener onSyn(Stream serverStream, SynInfo serverSynInfo) { logger.debug("S -> P pushed {} on {}", serverSynInfo, serverStream); Headers headers = new Headers(serverSynInfo.getHeaders(), false); addResponseProxyHeaders(serverStream, headers); customizeResponseHeaders(serverStream, headers); Stream clientStream = (Stream)serverStream.getAssociatedStream().getAttribute(CLIENT_STREAM_ATTRIBUTE); convert(serverStream.getSession().getVersion(), clientStream.getSession().getVersion(), headers); StreamHandler handler = new StreamHandler(clientStream, serverSynInfo); serverStream.setAttribute(STREAM_HANDLER_ATTRIBUTE, handler); clientStream.syn(new SynInfo(headers, serverSynInfo.isClose()), getTimeout(), TimeUnit.MILLISECONDS, handler); return this; }
public StreamFrameListener proxy(final Stream clientStream, SynInfo clientSynInfo, ProxyEngineSelector.ProxyServerInfo proxyServerInfo) { Headers headers = new Headers(clientSynInfo.getHeaders(), false); short serverVersion = getVersion(proxyServerInfo.getProtocol()); InetSocketAddress address = proxyServerInfo.getAddress(); Session serverSession = produceSession(proxyServerInfo.getHost(), serverVersion, address); if (serverSession == null) { rst(clientStream); return null; } final Session clientSession = clientStream.getSession(); addRequestProxyHeaders(clientStream, headers); customizeRequestHeaders(clientStream, headers); convert(clientSession.getVersion(), serverVersion, headers); SynInfo serverSynInfo = new SynInfo(headers, clientSynInfo.isClose()); StreamFrameListener listener = new ProxyStreamFrameListener(clientStream); StreamHandler handler = new StreamHandler(clientStream, serverSynInfo); clientStream.setAttribute(STREAM_HANDLER_ATTRIBUTE, handler); serverSession.syn(serverSynInfo, listener, timeout, TimeUnit.MILLISECONDS, handler); return this; }