Jetty9 源码初解(1)——Http

一、概述

个人是个实践型人员,所以打算看着jetty源码,从头开始组装Jetty。

首先从github.com里找到jetty-project项目,用git下载源码,本文以9.3.x为例。

首先Jetty作为一个web server,必然需要支持HTTP。

查看Jetty-http项目下http包下一共有下列几个类:

接口:
HttpContent
HttpFieldPreEncoder
HttpParser.HttpHandler
HttpParser.RequestHandler
HttpParser.ResponseHandler
HttpTokens

类:
DateGenerator
DateParser
HttpPostHttpField
Http1FieldPreEncoder
HttpCookie
HttpField
HttpField.IntValueHttpField
HttpField.LongValueHttpField
HttpFields
HttpGenerator
HttpParser
HttpStatus
HttpURI
MetaData
MetaData.Request
MetaData.Response
MimeTypes
PathMap
PathMap.MappedEntry
PathMap.PathSet
PreEncodedHttpField
ResourceHttpContent

枚举类:
HttpGenerator.Result
HttpGenerator.State
HttpHeader
HttpHeaderValue
HttpMethod
HttpParser.State
HttpScheme
HttpStatus.Code
HttpTokens.EndOfContent
HttpVersion
MimeTypes.Type

异常类:
BadMessageException

上述类里,需要关注的有下面几个基础类,分别进行解说。

Http协议由请求消息和响应消息组成,其中请求消息由请求行、首部行、空行、实体主体组成;而响应消息由状态行、首部行、空行、实体主体组成。围绕这些我们需要研究的类有...。

二、类分析

时间: 2024-08-28 14:08:52

Jetty9 源码初解(1)——Http的相关文章

Jetty9 源码初解(2)——IO之EndPoint

一.概述 EndPoint作为jetty-io的一个重要组成部分,是基于javaNIO的封装,用于底层网络的读写,一旦网络读写准备好,会调用相应的connection的handle方法. 二.类分析 EndPoint源码如下: /**  *  * 一个传输端点  *  * <h3>异步方法</h3>  */ public interface EndPoint extends Closeable {     /* -----------------------------------

Jetty9 源码初解(1)——HTTP前传

转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HT

Jetty9 源码初解(2)——IO之Connection

一.概述 查看Jetty-io包,清单如下: 接口类: ByteBufferPool ClientConnectionFactory Connection Connection.Listener Connection.UpgradeFrom Connection.UpgradeTo EndPoint ManagedSelector.SelectableEndPoint NetworkTrafficListener 实体类: AbstractConnection AbstractEndPoint

Jetty 9 Connector及Server类的一些源码分析 #1

本文的源码基于Jetty9,主要分析了Jetty 的Connector与Server类间在Jetty启动过程中的一些细节.Jetty9 对以前的Connector体系进行了重构, 结构与6和7都不同,原有的一些BIO类已经被抛弃. 先看Server 构造函数 public Server(@Name("port")int port) { this((ThreadPool)null); ServerConnector connector=new ServerConnector(this);

小说分销系统,微信小说分销,类掌中云小说系统,类818tu系统源码

[演示站参数][][][][][][][][][][][] [后 台 地 址]     http://xiaoshuo.qqsiot.cn/manager          [] [管理员账号]     admin                                                     [] [渠道商账号]     channel                                                  [] [代理商账号]     age

cocos Creator js 房卡麻将/血战/H5四川麻将源码下载搭建

房卡麻将/血战/H5四川麻将 源码 支持iOS/Android/H5 完整源码 1.基于NODEJS+MYSQL的服务器,成熟的技术方案,高效稳定,且方便Windows开发,Linux平台布署,节约服务器运转成本. 2.采用最新版本的cocos引擎,cocos creator开发,可快速的进行界面调整.且能够快速地发布iOS,Android版本. 3.如需H5版本,只需针对H5平台进行资源优化即可. 4.成熟可靠的房卡式设计,能满足大部分用户使用体验. 5.产品经过大量测试,可以运转稳定. 测试

下载-深入浅出Netty源码剖析、Netty实战高性能分布式RPC、NIO+Netty5各种RPC架构实战演练三部曲视频教程

下载-深入浅出Netty源码剖析.Netty实战高性能分布式RPC.NIO+Netty5各种RPC架构实战演练三部曲视频教程 第一部分:入浅出Netty源码剖析 第二部分:Netty实战高性能分布式RPC 第三部分:NIO+Netty5各种RPC架构实战演练

android手机安全卫士、Kotlin漫画、支付宝动画、沉浸状态栏等源码

Android精选源码 轻量级底部导航栏 android手机卫士源码 android实现高仿今日头条源码 一个用Kotlin写的简单漫画App源码 android吐槽项目完整源码 实现可以滑动文字逐渐变色的TabLayout android实现将app隐藏加密功能的源码 android实现横向滚动的卡片堆叠布局 android仿支付宝的咻咻动画源码 android状态栏和沉浸式导航栏管理源码 Android优质博客 从BaseActivity与BaseFragment的封装谈起 这篇博客主要是从

Java企业微信开发_09_身份验证之移动端网页授权(有完整项目源码)

注: 源码已上传github: https://github.com/shirayner/WeiXin_QiYe_Demo 一.本节要点 1.1 授权回调域(可信域名) 在开始使用网页授权之前,需要先设置一下授权回调域.这里瞬间想到之前做JSSDK的时候,也设置过一个域名.二者本质上都是设置可信域名. 当用户授权完毕之后,请求将重定向到此域名(或者子域名)下的执行者(jsp页面或者servlet等).如何设置授权回调域,请见第二节. 1.2 获取Code https://open.weixin.