我正在实现一个web服务器,想知道是应该先将客户机的http请求读入一个字符串,然后解析该http字符串,还是在读取客户机流时解析http。我用的是java,做的是后者。伪代码类似于:
从客户机的字符串中读取第一行
如果第一行(http状态行)无效,则引发异常
将第一行拆分为 method
, path
,和 HTTP
版本。
while(从客户机的字符串读取不是)eof
5.读这句话
...
后一个选项的伪代码是:
a<-初始化字符串
while(从客户机的字符串读取)不是eof
3.读这句话
4.将行附加到 a
5.将clrf附加到 a
然后处理字符串并在请求无效时抛出异常。
你认为哪种方法是正确的?
1条答案
按热度按时间kqlmhetl1#
我建议你在得到它的时候对它进行解析,因为,例如,只有当你得到
Content-Length
标题。你可以这样做,一行一行地读(显然,测试一下这个)