Java 我应该阅读客户端';首先将流转换为字符串,然后解析HTTP或解析HTTP,同时从客户端';s溪?

Java 我应该阅读客户端';首先将流转换为字符串,然后解析HTTP或解析HTTP,同时从客户端';s溪?,java,http,Java,Http,我正在实现一个web服务器,想知道是应该先将客户端的HTTP请求读入字符串,然后解析该HTTP字符串,还是在读取客户端流时解析HTTP。我正在使用Java,并完成了后者。伪代码类似于: 读取客户端字符串的第一行 如果第一行(HTTP状态行)无效,则引发异常 将第一行拆分为方法、路径、和HTTP版本 而(从客户端字符串读取的)EOF 5.读这句话 后一个选项的伪代码是: a我建议您在获取时对其进行解析,因为,例如,只有在获取内容长度标题时,才会知道主体的大小 你可以这样做,然后逐行阅读。(显然是

我正在实现一个web服务器,想知道是应该先将客户端的HTTP请求读入字符串,然后解析该HTTP字符串,还是在读取客户端流时解析HTTP。我正在使用Java,并完成了后者。伪代码类似于:

  • 读取客户端字符串的第一行
  • 如果第一行(HTTP状态行)无效,则引发异常
  • 将第一行拆分为
    方法
    路径
    、和
    HTTP
    版本
  • 而(从客户端字符串读取的)EOF
    5.读这句话
  • 后一个选项的伪代码是:


  • a我建议您在获取时对其进行解析,因为,例如,只有在获取
    内容长度
    标题时,才会知道主体的大小

    你可以这样做,然后逐行阅读。(显然是在测试这个)


    我建议您在获取时对其进行解析,因为,例如,只有在获取
    内容长度
    标题时,才会知道主体的大小

    你可以这样做,然后逐行阅读。(显然是在测试这个)


    谢谢你的回复。我也认为这是正确的方法。谢谢你的回复。我也认为这是正确的方法。
    public static String readLine( InputStream is ) throws IOException {
         StringBuilder sb = new StringBuilder();
         
         int c;
         while( (c = is.read()) >= 0 ) {
              if ( c == '\r') continue;
              if ( c == '\n') break;
              sb.append( (char)c );
         }
         return sb.toString();
    }