private void putContentLength(ByteBuffer header, long contentLength, boolean contentType, MetaData.Request request, MetaData.Response response) { if (contentLength>0) { header.put(HttpHeader.CONTENT_LENGTH.getBytesColonSpace()); BufferUtil.putDecLong(header, contentLength); header.put(HttpTokens.CRLF); } else if (!_noContent) { if (contentType || response!=null || (request!=null && __assumedContentMethods.contains(request.getMethod()))) header.put(CONTENT_LENGTH_0); } }
private void generateRequestLine(MetaData.Request request,ByteBuffer header) { header.put(StringUtil.getBytes(request.getMethod())); header.put((byte)' '); header.put(StringUtil.getBytes(request.getURIString())); header.put((byte)' '); header.put(request.getHttpVersion().toBytes()); header.put(HttpTokens.CRLF); }
private void generateRequestLine(MetaData.Request request,ByteBuffer header) { header.put(StringUtil.getBytes(request.getMethod())); header.put((byte)' '); header.put(StringUtil.getBytes(request.getURIString())); header.put((byte)' '); header.put(request.getVersion().toBytes()); header.put(HttpTokens.CRLF); }
setMethod(request.getMethod()); HttpURI uri = request.getURI(); _originalURI = uri.isAbsolute()&&request.getHttpVersion()!=HttpVersion.HTTP_2?uri.toString():uri.getPathQuery();
public Runnable onPushRequest(MetaData.Request request) { try { onRequest(request); getRequest().setAttribute("org.eclipse.jetty.pushed", Boolean.TRUE); onContentComplete(); onRequestComplete(); if (LOG.isDebugEnabled()) { Stream stream = getStream(); LOG.debug("HTTP2 PUSH Request #{}/{}:{}{} {} {}{}{}", stream.getId(), Integer.toHexString(stream.getSession().hashCode()), System.lineSeparator(), request.getMethod(), request.getURI(), request.getHttpVersion(), System.lineSeparator(), request.getFields()); } return this; } catch (BadMessageException x) { onBadMessage(x); return null; } catch (Throwable x) { onBadMessage(new BadMessageException(HttpStatus.INTERNAL_SERVER_ERROR_500, null, x)); return null; } }
public boolean upgrade(Request request) { if (HttpMethod.PRI.is(request.getMethod())) { getParser().directUpgrade(); } else { HttpField settingsField = request.getFields().getField(HttpHeader.HTTP2_SETTINGS); if (settingsField == null) throw new BadMessageException("Missing " + HttpHeader.HTTP2_SETTINGS + " header"); String value = settingsField.getValue(); final byte[] settings = B64Code.decodeRFC4648URL(value == null ? "" : value); if (LOG.isDebugEnabled()) LOG.debug("{} settings {}",this,TypeUtil.toHexString(settings)); SettingsFrame settingsFrame = SettingsBodyParser.parseBody(BufferUtil.toBuffer(settings)); if (settingsFrame == null) { LOG.warn("Invalid {} header value: {}", HttpHeader.HTTP2_SETTINGS, value); throw new BadMessageException(); } getParser().standardUpgrade(); upgradeFrames.add(new PrefaceFrame()); upgradeFrames.add(settingsFrame); // Remember the request to send a response from onOpen(). upgradeFrames.add(new HeadersFrame(1, new Request(request), null, true)); } return true; }
public void onRequest(MetaData.Request request) { _requests.incrementAndGet(); _request.setTimeStamp(System.currentTimeMillis()); HttpFields fields = _response.getHttpFields(); if (_configuration.getSendDateHeader() && !fields.contains(HttpHeader.DATE)) fields.put(_connector.getServer().getDateField()); long idleTO=_configuration.getIdleTimeout(); _oldIdleTimeout=getIdleTimeout(); if (idleTO>=0 && _oldIdleTimeout!=idleTO) setIdleTimeout(idleTO); request.setTrailerSupplier(_trailerSupplier); _request.setMetaData(request); _request.setSecure(HttpScheme.HTTPS.is(request.getURI().getScheme())); notifyRequestBegin(_request); if (LOG.isDebugEnabled()) LOG.debug("REQUEST for {} on {}{}{} {} {}{}{}",request.getURIString(),this,System.lineSeparator(), request.getMethod(),request.getURIString(),request.getHttpVersion(),System.lineSeparator(), request.getFields()); }
public Request(Request request) { this(request.getMethod(),new HttpURI(request.getURI()), request.getHttpVersion(), new HttpFields(request.getFields()), request.getContentLength()); }
@Override public void earlyEOF() { _httpConnection.getGenerator().setPersistent(false); // If we have no request yet, just close if (_metadata.getMethod() == null) _httpConnection.close(); else if (onEarlyEOF() || _delayedForContent) { _delayedForContent = false; handle(); } }
private void generateRequestLine(MetaData.Request request,ByteBuffer header) { header.put(StringUtil.getBytes(request.getMethod())); header.put((byte)' '); header.put(StringUtil.getBytes(request.getURIString())); header.put((byte)' '); header.put(request.getHttpVersion().toBytes()); header.put(HttpTokens.CRLF); }
@Override public String getMethod() { MetaData.Request metadata = _metaData; return metadata==null?null:metadata.getMethod(); }
@Override public String toString() { HttpFields fields = getFields(); return String.format("%s{u=%s,%s,h=%d,cl=%d}", getMethod(), getURI(), getHttpVersion(), fields == null ? -1 : fields.size(), getContentLength()); } }
@Override public void earlyEOF() { // If we have no request yet, just close if (_metadata.getMethod()==null) _httpConnection.close(); else onEarlyEOF(); }
public boolean isHead() { return _metadata!=null && HttpMethod.HEAD.is(_metadata.getMethod()); }
@Override public String getMethod() { return _metadata==null?null:_metadata.getMethod(); }
public Request(Request request) { this(request.getMethod(),new HttpURI(request.getURI()), request.getVersion(), new HttpFields(request.getFields()), request.getContentLength()); }
public boolean isHead() { MetaData.Request metadata = _metaData; return metadata!=null && HttpMethod.HEAD.is(metadata.getMethod()); }
@Override public String toString() { HttpFields fields = getFields(); return String.format("%s{u=%s,%s,h=%d,cl=%d}", getMethod(), getURI(), getHttpVersion(), fields == null ? -1 : fields.size(), getContentLength()); } }
public Request(Request request) { this(request.getMethod(),new HttpURI(request.getURI()), request.getHttpVersion(), new HttpFields(request.getFields()), request.getContentLength()); }
@Override public String toString() { HttpFields fields = getFields(); return String.format("%s{u=%s,%s,h=%d}", getMethod(), getURI(), getVersion(), fields == null ? -1 : fields.size()); } }