zoukankan      html  css  js  c++  java
  • 模拟Web服务器

    模拟一个web服务器获取浏览器发来的请求头消息

    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class MyServer {
    
        public static void main(String[] args) throws IOException {
    
            /*
             * 创建一个服务器为了获取浏览器发送的数据
             */
            System.out.println("服务器端启动....");
            
            
            
            ServerSocket ss = new ServerSocket(9090);
            
            Socket s = ss.accept();
            
            System.out.println(s.getInetAddress().getHostAddress()+"....connected");
            
            //接收浏览器的数据
            InputStream in = s.getInputStream();
            byte[] buf = new byte[1024];
            int len = in.read(buf);
            String str = new String(buf,0,len);        
            System.out.println(str);
            
            //给浏览器一个回馈
            PrintWriter out = new PrintWriter(s.getOutputStream(),true);//自动刷新
            out.println("<font size='7' color = 'green'>欢迎光临,你访问的是XXX的服务器</font>");
            
            s.close();
            ss.close();
            
            
        }
    
    }

    在浏览器的地址栏中输入:http://127.0.0.1:9090/  后服务端获取到的请求头消息如下:

    GET /myapp/1.jpg HTTP/1.1 //请求行。请求方式 ,请求的资源路径, http协议版本
    请求头消息中的属性信息。
    Host: 192.168.***.***:9090
    Connection: keep-alive
    Cache-Control: max-age=0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0
    Accept-Encoding: gzip, deflate, sdch //封装的压缩方式
    Accept-Language: zh-CN,zh;q=0.8
    空行
    //请求体(用空行分割)

  • 相关阅读:
    JavaScript学习笔记(十六) XMLHttpRequest
    Zabbix 3.0 安装笔记
    jetty端口灵活配置方法
    IDEA15入门常用设置
    [转] 填石头——时间管理
    [转]关于产品的落地
    [转]Netbeans IDE默认UTF-8编码
    如何解决SSH连接Linux超时自动断开?
    ActiveMQ部署步骤和后台管理网站Service Unavailable问题解决笔记
    [转]Maven2中snapshot快照库的使用
  • 原文地址:https://www.cnblogs.com/qjlbky/p/5932684.html
Copyright © 2011-2022 走看看