项目二:HTTP服务器
来源:互联网 发布:软件安装权限 编辑:程序博客网 时间:2024/06/06 05:12
项目二:HTTP服务器
(在学习servlet技术和使用Tomcat之前,熟悉其底层基本原理。)
HTTP服务器采用请求-响应模式,即一个请求对应一个响应。
本篇博客将介绍该项目的基本思路,具体实现代码,可访问博主的github: https://github.com/EdsonUnique。
工欲善其事,必先利其器。需掌握:
1 掌握HTTP协议
2 掌握IO流
3 网络编程
4 多线程
5 反射
6 xml文档及解析(用到的是dom4j解析)
基本思路:
① 核心包:
Server类:服务器端,启动和关闭服务器;处理多线程逻辑编码,定义的方法:start(),stop()。Request类:获取请求信息,分析并存储请求参数或请求正文。Response类:封装响应信息,并输出。Dispatcher类:多线程处理并发操作。WebApps类:存放uri和Servlet类的映射关系;解析xml文档ServletContext类:根据不同的uri调用不同的Servlet响应
② Servlet包:
Servlet类:抽象父类,封装响应正文。LoginServlet类,RegisterServlet类:继承Servlet类。可添加其它子类,并在xml文档中配置。
③ 工具包:
CloseUtils类:关闭操作(流,客户端,服务器端)
④ 解决中文乱码问题: URLDecoder类
HTTP知识总结:
1 HTTP请求
三部分组成:1)请求行:请求方式 uri(get方式有参数) 协议版本 2)请求头:Accept, Host,Connection,Accept-Encoding等等 3)请求正文:post方式才有。注意请求头与请求正文之间有空行。
2 HTTP响应
三部分组成:1)状态行:协议版本 状态码 状态描述 2)响应头:Content-Type,Content-Length,Location等等 3)响应正文:html语言等;注意响应头与响应正文之间有空行。
3 常见的响应状态码:
200:响应成功302:重定向资源,与Location响应头使用303、304:获取缓存资源404:文件不存在405:服务器不支持客户的请求方式500:服务器内部错误
4 几点注意:
1)封装Request和Response时,注意get/post方式的格式不同,注意空行问题。2)响应头中的Content-Length指的是响应正文的字节长度而非字符长度。
阅读全文
0 0
- 项目二:HTTP服务器
- http服务器小项目
- 基于Java实现Http服务器之二
- 基于Java实现Http服务器之二
- Java实现Http服务器之二
- 自己实现Http服务器:二、实现过程
- 用node实现http服务器 二
- Qt网络编程--HTTP服务器(二)
- 【项目】简易http服务器流程图分析
- HTTP Web服务器研究之二 HTTP协议
- http项目笔记(多线程版 微型http服务器)
- 构建高性能的 HTTP 服务器 (二)--NIO 模式的HTTP服务器
- HTTP学习笔记之二——Web服务器
- HTTP学习笔记之二——Web服务器
- (二) Apache搭建HTTP方式访问SVN服务器
- Http服务器实现文件上传与下载(二)
- 徒手撸个http 服务器(二) ----epoll系列函数
- 【Nginx二】Nginx作为静态文件HTTP服务器
- Sqlplus
- 和代码的青春七年
- IC设计基础系列之CDC篇5:跨时钟域信号处理 (发起请求信号和回传确定信号,有状态图,有代码)
- mac下修改mysql的密码与卸载
- Java_Ant详解
- 项目二:HTTP服务器
- web IDEA部署 教程备忘
- 欢迎使用CSDN-markdown编辑器
- PPT | 云客堂——云应用程序结构、开发测试及发布过程全解析
- |BZOJ 1655|无限背包|高精度|[Usaco2006 Jan] Dollar Dayz 奶牛商店
- [BZOJ4184]shallot(线段树+线性基)
- InnoDB间隙锁简介
- 编程考试&&noi原题: 1.11编程基础之二分查找10:河中跳房子
- 计蒜之道 2017 程序设计大赛