HTTP网络协议与手写Web服务容器】的更多相关文章

Http协议 1.深入概念 Http:HyperText Transfer Protocol,即是超文本传输协议. 2.浅出概念(使用浏览器访问服务器端网页时需要遵循的一系列规则) Http:将各种不同浏览器或各种自研客户端的文字信息组织在一起的网状文本数据. 协议:多方一起约定的一系列规则,然后大家活动必须遵循这些规则,就像法律大家必须遵循才能享受法律提供的保护. 举个栗子:我们平时去饭店吃饭通常会有以下几个步骤: 1.坐到合适的座位上. 2.服务员拿出菜单点餐. 3.服务员按照点餐菜单下单.…
原文地址:JavaSE 手写 Web 服务器(一) 博客地址:http://www.extlight.com 一.背景 某日,在 Java 技术群中看到网友讨论 tomcat 容器相关内容,然后想到自己能不能实现一个简单的 web 容器.于是翻阅资料和思考,最终通过 JavaSE 原生 API 编写出一个简单 web 容器(模拟 tomcat).在此只想分享编写简单 web 容器时的思路和技巧. 二.涉及知识 Socket 编程:服务端通过监听端口,提供客户端连接进行通信. Http 协议:分析…
原文地址:JavaSE 手写 Web 服务器(二) 博客地址:http://www.extlight.com 一.背景 在上一篇文章 <JavaSE 手写 Web 服务器(一)> 中介绍了编写 web 服务器的初始模型,封装请求与响应和多线程处理的内容.但是,还是遗留一个问题:如何根据不同的请求 url 去触发不同的业务逻辑. 这个问题将在本篇解决. 二.涉及知识 XML:将配置信息写到 XML 文件,解决硬编码问题. 反射:读取 XML 文件配置并实例化对象. 三.封装控制器 目前手写的 w…
本项目代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 在我们的项目中,我们没有采用默认的 Tomcat 容器,而是使用了 UnderTow 作为我们的容器.其实性能上的差异并没有那么明显,但是使用 UnderTow 我们可以利用直接内存作为网络传输的 buffer,减少业务的 GC,优化业务的表现. Undertow 的官网:https://undertow.io/ 但…
链接:https://pan.baidu.com/s/1MhKJYamBY1ejjjhz3BKoWQ 提取码:e8on 明白什么是IOC容器: IOC(Inversion of Control,控制反转).这是spring的核心,贯穿始终.所谓IOC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系. 传统的java代码中,我们需要使用哪个对象,就new一个对象,很正常对吧? 然而,这时出现了一个新思想:IOC(控制反转) 由它创建和管理所有的对象,我们需要的时…
目录 IOC分析 IOC是什么 IOC能够带来什么好处 IOC容器是做什么工作的 IOC容器是否是工厂模式的实例 IOC设计实现 设计IOC需要什么 定义接口 一:Bean工厂接口 二:Bean定义的注册接口 三:Bean定义接口 实现接口 一:Bean定义的实现GenericBeanDefinition 二:Bean工厂的实现DefaultBeanFactory 测试一下 相信很多朋友对Spring已经很熟悉了,面试中也经常会被问到Spring里面相关的知识,比如IOC.DI.AOP等,下面通…
1.新建目录,起名MyWeb 2.目录下,新建两个目录 WEB-INF, META-INF,,还能够新建一些jsp,html文件 ,如 index.html 3在WEB-INF中必须存在一个文件WEB.xml, 还包括两个目录 lib, classes 4 在WEB.xml中写入最简单的<web-app> ....  </web-app>,,,,,编辑一下index.html 以下是要执行了 1.cmd 2,切换到MyWeb的目录.jar 命令查看一下各个參数的含义 3.jar -…
1,加载Controller     我们需要创建 一个ControllerHelper类,让它来处理下面的逻辑:      通过ClassHelper我们可以获取所有定义了Controller注解的类,可以通过反射获取该类中所有带有Action注解的方法,获取Action注解中的请求表达式,进而获取请求方法与请求路径,封装一个请求对象(Request)和处理对象(Handler),最后将Request与Handler建立一个映射关系,存入一个Action Map中,并提供一个可以根据请求方法与…
我们在Controller中定义了Service成员变量,然后在Controller的Action方法中调用Service成员变量的方法,那么如果实现Service的成员变量? 之前定义了@Inject注解,就用它来实现Service是例话,那么谁来实例化呢. 不是开发者通过new的方式来实例化,而是通过框架自身来实例化,像这类实例化过程称为IOC(控制反转),控制不是由开发者来决定,而是反转给框架了.一般也将控制反转称为DI(依赖注入),可以理解为将某个类需要依赖的成员注入到这个类中,那么我们…
private void OpenSocket(int port) { Task.Factory.StartNew(() => { server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint local = new IPEndPoint(IPAddress.Parse("127.1"), port); server.Bind(local); ser…