第一章:一个简单的Web服务器

How java web server to work

**一个基于java的web服务器使用两个重要的类:java.net.Socket和java.net.ServerSocket,通过http消息与客户端通信,也称为http服务器**。
HTTP超文本传输协议
    http,一种协议,允许互联网中服务器与浏览器进行发送与接收数据,是一种请求与响应协议。使用可靠的TCP连接。
   在http中,始终都是客户端通过建立连接和发送http请求开启一个事务。服务器不用联系浏览器端。
HTTP请求
    一个http请求包含三部分:
      1.请求行:方法-URI-协议/版本 POST /example/index.html http/1.1(三部分之间通过回车换行符CRLF分隔开)
      2.请求的头部
      3.主体内容
HTTP响应
    一个http响应包含三部分:
      1.状态行:协议/版本 状态码 原因短语 http/1.1 200 OK (三部分之间通过回车换行符CRLF分隔开)
      2.响应的头部
      3.主体内容
Socket类(java.net.socket)
      socket类是网络连接的端点。使得一个应用程序可以从网络读取与写入数据。为了从一个应用程序发送消息到另一个应用,需要知道另一个应用的IP地址和socket端口。
      通过调用socket的getOutputStream和getInputStream方法获得OutputStream对象和InputStream对象
      socket类常用构造方法:socket(Inetadress address,int port)
ServerSocket类
      服务器socket和socket不同,服务器socket的角色是等待来自客户端的连接请求,一般服务器soket获得连接请求,将创建一个socket和客户端进行通信。
      常用构造方法:ServerSocket(int port,int backLog,InetAdress Bindingadress)表示监听bindingAdress地址上的端口port。backLog是拒绝开始传入的请求之前,连接请求的最大队列数。
      关键方法:accept(),用于监听请求的到来,当请求来到时,创建一个socket与客户端通信。
创建一个简单的Web服务器
servlet容器为一个servlet请求提供服务,基本分三部:
  1. 创建一个request对象并填充所引用的servlet使用的信息,如参数,头部,uri等等
  2. 创建一个response对象,所引用的servlet用它给客户端发送响应
  3. 调用service方法,并传入request和response对象。前者用于取值,后者写值。

将创建web服务器分成三部分
  1. 创建Request类
  2. 创建Response类
  3. 创建HttpServicer类
代码实现见GitHub

新手上路,请多多指教
https://github.com/levyc/OwnWebServer.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值