zoukankan      html  css  js  c++  java
  • JAVA实现HTTPserver端

    用java socket实现了一个简单的httpserver, 能够处理GET, POST,以及带一个附件的multipart类型的POST。尽管中途遇到了非常多问题, 只是通过在论坛和几个高手交流了一下,问题都攻克了。假设你认为程序有些地方看不明确,能够參看这个帖子:http://topic.csdn.net/u/20090625/22/59a5bfc8-a6b6-445d-9829-ea6d462a4fe6.html .

    尽管解析http头不是非常规范,本来应该用原始的字节流, 我採用了一个折衷的方案,用DataInputStream.

    本代码的有用性==0,可是能够帮助非常好地了解http协议,然后其它的应用层协议大都如此。

    假设你从来都没有了解过http协议,建议先搜索阅读一下,或者你还能够用以下的代码来简单的看一看究竟浏览器和server之间都相互发送了什么数据。

    MyHttpClient.java: 模拟浏览器的行为, 向server发送get/post请求,然后打印出server返回的消息。这样就能够查看当一个请求到来之后, server究竟都给浏览器发送了哪些消息。

    MyServer.java: 模拟server端接收浏览器的请求,然后把整个请求的报文打印出来。程序执行之后直接用浏览器測试。

    主程序MyHttpServer.

    測试文件post.html, upload.html都放在上面程序定义的WEB_ROOT以下。

    post.html:处理普通的post请求

    upload.html:測试带附件的post请求

    一切准备妥当,而且MyHttpServer执行之后, 在浏览器输入http://localhost:8080/post.html和http://localhost:8080/upload.html就可以进行測试.

    转载请注明来自http://blog.csdn.net/sunxing007

  • 相关阅读:
    Discourse 如何不使用 Let’s Encrypt 而使用 CA 签名的密钥进行安装
    Discourse 重复安装过程中的密钥签发问题
    Discourse 升级后提示 https 混合内容
    CentOS 8 安装 docker 报错 containerd.io >= 1.2.2-3
    MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
    培养自己的5项能力
    高效率工作方式
    项目的架构演进过程
    如何预防后台被攻击,且看Tomcat的安全配置
    redis的缓存更新策略,缓存粒度控制
  • 原文地址:https://www.cnblogs.com/blfshiye/p/3761731.html
Copyright © 2011-2022 走看看