在java中解析来自文本文件的HTTP请求和响应
我们在文本文件中有以下形式的请求/响应- POST/bWAPP/xss_POST.php HTTP/1.1用户代理:Mozilla/5.0(Windows NT 6.1;WOW64;rv:52.0)Gecko/20100101 Firefox/52.0参考:Cookie: firstname=%3E%22%27%3E%3Cscript%3Ealert%28192%29%3C%2Fscript%3E&lastname=%3E%22%27%3E%3Cscript%3Ealert%28192%29%3C%2Fscript%3E&表单=%3E%22%27%3E%3Cscript%3Ealert%28192%29%3C%2Fscript%3E HTTP/1.1 200 OK传输编码:分块连接:保持活动状态 服务器:Apache/2.4.23(Win32)OpenSSL/1.0.2h PHP/7.0.13 Pragma:在java中解析来自文本文件的HTTP请求和响应,java,regex,Java,Regex,我们在文本文件中有以下形式的请求/响应- POST/bWAPP/xss_POST.php HTTP/1.1用户代理:Mozilla/5.0(Windows NT 6.1;WOW64;rv:52.0)Gecko/20100101 Firefox/52.0参考:Cookie: firstname=%3E%22%27%3E%3Cscript%3Ealert%28192%29%3C%2Fscript%3E&lastname=%3E%22%27%3E%3Cscript%3Ealert%28192%29%3
该字符串包含请求和响应。我想解析来自它的请求和响应。HTTP/1.1有两次:一次在请求中,一次在响应中。响应从HTTP/1.1第二次出现的位置开始。请帮助我编写一个适当的正则表达式模式,以便从给定字符串中分别提取请求和响应。作为练习,我使用了一个可变宽度的负前瞻:
(?*)(?HTTP\/1\.1(?。*HTTP\/1\.1.*)
其思想是,从第一条HTTP语句的末尾开始,它会向前看,并断言找不到另一条
我能够通过使用regex和硬编码所有可能的标题并获取任何标题名和新行之间的内容来解析标题。例如,Accept:(.*)\n.它为所有请求返回了Accept头值。如果您使用
(?m)
启用多行模式,它应该只需要一个简单的模式,例如(?m)^HTTP/1\.1.+