1搭建简单的Web服务器.pptVIP

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1搭建简单的Web服务器1搭建简单的Web服务器

Header 解释 Content-Type 请求的与实体对应的MIME信息 Date 请求发送的日期和时间 Expect 请求的特定的服务器行为 From 发出请求的用户的Email Host 指定请求的服务器的域名和端口号 If-Match 只有请求内容与实体相匹配才有效 If-Modified-Since 如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码 If-None-Match 如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变 If-Range 如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。参数也为Etag …… HTTP Request Header详解(二) 套接字(socket)是网络连接的端点。套接字使应用程序可以从网络中读取数据,可以向网络中写入数据。通过OutputStream发送字符流,通过InputStream接收字符流。 常用构造方法: public Socket(String host, int port) public Socket(InetAddress address, int port) public Socket(String host, int port, InetAddress localAddr,int localPort) InetAddress对象可以进行ip和域名相互查询,通过ip获取时不需要访问DNS服务器, 返回结果包含了主机名的字符串。实用方法如下: InetAddress.getByName(“”) Socket Socket本地服务器通信Demo Socket socket = new Socket(, 8080); boolean autoflush = true; PrintWriter out = new PrintWriter(socket.getOutputStream(), autoflush); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out.println(GET /index.jsp HTTP/1.1); out.println(Host: localhost:8080); out.println(Connection: Close); out.println(); 发送请求内容 Socket本地服务器通信Demo boolean loop = true; StringBuffer sb = new StringBuffer(8096); while(loop){ if(in.ready()){ int i = 0; while(i!=-1){ i = in.read();sb.append((char)i); } loop = false; } Thread.currentThread().sleep(50); } System.out.println(sb.toString()); socket.close(); 获取接收到信息 ServerSocket ServerSocket类与Socket类不相同, 服务器套接字要等待来自客户端的连接请求。当服务器套接字收到连接请求后,它会创建一个Socket实例来处理与客户端的通信。 构造方法 public ServerSocket(int port, int backLog, InetAddress bindingAddress) 使用示例 new ServerSocket(8080, 1, InetAddress.getByName(“”)) 搭建简单的web服务器 简单的web服务器示例仅仅需要3个类,仅支持输出静态资源的请求和传入的HTTP请求字节流。 HttpServer类代表web服务器,主函数入口新建实例后一直等待HTTP请求。 Request类代表Http请求。通过parse()方法解析原始数据并通过parseUri()方法将URI变量获取。 Response类代表Http响应。通过setRequest()方法传入Request对象,通过sendStaticResource()方法发送静态资源到浏览器。 HttpServer public class HttpServer { public static final String WEB_ROOT = System.getProperty(user.dir) + File.separator + webroot; priv

文档评论(0)

yyanrlund + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档