RequestParser regex match very slow
Hi, I met a problem that the connection is very slow, usually it takes 17 secs to create connection, after debugged the source code, I found the regex pattern to match the request string in Request Parser (line 28) is very slow.Do you have any solution. Here is my request: GET / HTTP/1.1 Host: 172.16.2.165:8181 Connection: Upgrade Pragma: no-cache Cache-Control: no-cache Upgrade: websocket Origin: http://172.16.2.165:8000 Sec-WebSocket-Version: 13 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Cookie: .AspNetCore.Cookies=chunks-4; .AspNetCore.CookiesC1=CfDJ8FQ5Nbx0MjtOkhtbrGABpUTBCLQzn80-tkmp9tF81sgz7u5dSaYter8FbI-9tYF98S5Fjgdc6liVQduVC0mvN-Po6POE8XKrhoQ-3o014Jz249qeFDOd-7j4PsfOAxWhSwf02DlXkKU6eQCl1qEYuhDZFRTEjXZCiIl9k64bY2nMmeGSPvO7_mNKjBVGxINT94CDFI8Xtb26QHIEKSIhFM1z8JCcs_6HTJ0ASCvrDoVI6nMmb1goaftihsQYhTaocNA9f0284tJNXqW8VSnBh1NbsRTVNealgmsySooBwmDdpYZpVOVqN4BFX1GN_8veUImdBBvq1P_EGppOsSFrTh2q8npKROpztTxQ234wKSiH-Cs9RT_NS3cnIwYi1u0wSPVUqiDCSnTNYdYwpTXXPdt4H5-HPcB8nUDCgrJyNyq5wnVKCZhkbVEpJ_ZQOiMQ4Bw1h6xfvif2JKgf_0yhww6UTx6hon_6X4jzTNthogMGI9qO66RG9So9Qs6ze8H2SgnU4DxzL_VJh3MEesZGKpjaLC6_tvwqWRmNAcoRkCDV6HgR8oIGp3zdXidzlWDK_arltgN8reuDRbvEhcniLrVY0Z0___aag5joC0_TYsTcT6D1BVyc-XGnjBEvA9cV3m1qHHh83lxNPJTsqlEqbwleFpas0DVU-3VfnMQjsycsvcnQxvujwf2AKvmT_4WIYV7UBmXnrxHrfwje4CMxotwgdCn_HBQlj84GVQNqan0yD4r4oWYWWV-BTewWJL2Atdszh0CATGnpTlkcI_iT15XxbpwWvqnlO9hWAY6W_gJsZP6wI0zFan2NKPs-EoKU9oaY0OaYoGvikpqKRrnCu6gpA8ErAFtm94-fCEa5w6YbOyx1pIGTatzZnwjhGhEG4Gv7vZo77tPPL84tm7PXExURlRNhw--ycsBy4jLPXo6MqbrjW7-kNb67hUA7sDiJAPO4WmnJzBYS1Yl94LJQCOsE3cMnxeXs9koGrIXnmgnRU_vRavl1G8wwmDUa1V8eA1TyWEwuIdZ1v12mBjWuCE8Z_tcStfmHCuacXfkiMK4ciajVvXwqx2mXbkrQu_3qL0-NxnpGHaa7lVBV7xsxPdlnEmJi0paMqrn864shFek4E1f-w83TBL0pviH9EhLo6hdNtdBAzMwJRGOKJ_MHIjjrEExaI4kVhyocHFHX1VGCVCdPMAEQv77pHS902GhK1jqiKUtaLrZUQB1tDPxp6-02Yg4VbswoiCWeNUEyfhir4f4Xk3fh_fEDf6IPcuM39XtEhqfFJCKXASB4XvNlnlBPtlG3XejbybGV_Zlk9bxB9HNgG7Zr4ym5_zddpMod99XV1Iml7WL32n2m5oGzvRPVufaZhEzTxdwsaHzGzMpE6bYiMlOkWDO-vTq7F_Vi-Rk9IaVUiPwS8G6JZ_G0jhqA15fiG1aYNi28pcPNQz3VunV3HsUiZR4q9lsfTFGfHlXq470pg-LkRBPOHjzdsDPW-WnpNGyU4EJmJ9oKWN-TmrYEw3alD9cXv4CI_DIlzy9RPxaUYdm3Vjvgg4W7Phv33eiuPzQ9RjStzkL7jWRppV11GCwgJUaTxyg7wnf62ADz2oS4j7hR-eGdMq5YgKw_h3JQCgQNn1egcAUjNE1aZRxMMafgVbGcMqVZuozE1edXjWxs3C5u8vebXcasxofo_cKMShU72jcxz-YU0QpqnVHxnTUSvQUo09wZ_1FEIzL0pwhDUSyS_ZZX2WM8AoGptguJME4fSR3SBxVFb92VACP2Y3wUxVjw4sUl4hMwmVdCIT-LP4nfAXFLnraOKy9O3Yq_VBHR4iCPtYxEWNn9_iop2O2-ZBr5OHjv2Heemkem9H37-_Vu9qhESJQfW_q4wjCp-gB0BWHMYKBMptK_knrgZSPgZuKgmExryGfqokNYWYrQ-upDszIK87Pi934nwJDhZujWOG34_93j9cOJHkB4p5DHcbyf0R__Aio5Tmd8b7IThNucWzzQCIk4yatXQSs4NCyRaMApGyhCGKySgFZx1BOqCrAO82fnUykcaxWDqRjf-YVVZtkLrmmjjRkiQ_6FPKhBWhzqrXEkuFvBzQYgeOEy2YAVKDsL7947swenld2wLolZBgy2xvIjklM09Ph1PHeekEOmx6xFVUIANOrHSUKAVWy7FMGugbZCHTf1Ay33KXS03SJHz7G5VBbidx65j8cH3mYCMYXb1gqxq_uX8os7guBwoAhcLcmBJyIoR0FKbtZ01eOHskN7kT-Fvp8Ri1QB2kdOKWrQM2D7eqvARLrpUXc6IT6XlcMB0paYB0VwKShMDDiB3dfS2de-sRiXdEjiPo-yMIF4UNGEvWnPZQbtC6im4EhnSLnqMP76umBeLdZdSkQaiXWt0WFcpYhmLbrn0cWnxQriH2e_iidZa9ROwLhumuqd7M62dNyZgQZZB-DLB7xUJ4N_xtYUgLF82ldAOMiYvPZozJrCVZoVaUlr7QKbxS5NuVHdmKY-8fdq1l_4HUPt2EJK8kX2dXxZXqWEOsRQaSQL7lbWnFW0umNyM95UTM6kdgTbBoArzb0tkwtchXLohr2pW57EXVIuTyUMlAjDvVnAzYTTfe_9-cfiC4LBF1tHd2QJYdnQSMVbIBH84s6InbSSvL5E2ByO6e1XHs3uterl4ootastj6esSRU_bN1R1I3QmGqfOjs-41eA225BgSWtGlJg5bkFuwvw5mvjFMt4xmmD9DWB7WW6vkQwEzqj1stH341lKb9tsPD3aKS_yLmGiY6bB0l3me4_xTWgmHPov6xlK4_0RqNuRBnCAoLTYbKsiQ-PRZC75Kvn8s6IoxvtEaqKaIdD93yRadITElS45O8F2rq8hClWdBaIgpgutyqf4jfJSbUmceeq7eJ3UFkRK_m1SnWxcmFDl4Eb2Lb7gm9Y3GP2UanSnYIbjoD3Yp6K0Llu3pNRtLvXlxvov3ksT5S3zVkiaaURZkMnp2kN0fP3lrekCA6obO6i7kzNRlnXRSB3xqCeblmBGwSOa0X4fIC8t5o0_R09q1lbKturrpWiR9jACeuzjjEzm1LwXaIbXCyIC3O3h0NQHEJzsT8xK5ksX1sBbwAQ5O7dpgejFxMU1B1SQ_lJTN63z_ritASK5w4H6IMGmfnuHp8k_Zzt5t4L2FmExeDCvoDSG6bRvsdbmkuk8eO_ecZTGJQHzVxmReo-9uagVY8-rfIkooLtmnrRhFfHpmfXAFvHGWUU0VVtUay__v4rN-dzuL7Esx_OyAGVDwuRqUzPnqXR8u3wdgF1eqKBzkIjBX0r-OmY6L957OcgDiCWBsWQvuBKbya_7UKRMiPgPdkL_b2BtzeVuuFh9JpcjhkoiahMUACxJoZeoBgE5nC8nPuAi2_GN6MrHYJfljaivxP0hSv8SqV4bZT9xlTTePfgFR842xOqCJh0_4xkMe6UCSSJQbS71ELFADiISoZraqeLWe5MIXbNAdSk52gSWwjIgE6b3usRLtxUVZxrO0vBTG0Uw-o_CvLBTyMCeOIVmy3lA-ifyQ7UGeX0i_hRbwcZkfl-Q4uAeqw7Ts2qwEviyCB24d46BiX4hD1jKNH2HEVZyrwHCDkTEW9_8twc2dwl0xlSYkXBttQC6WsQbwFdcBUHcAWV92Q2VFKr1Hk9m6fuwlZn3qvg1287uX0xx38onGOJ3LH_oBmgh9oECVVwXT6YcJUZFr1dZoBR8n-_x1PayO8M-1gkfouFd_UGAmbV7Kn0dpMIducmKti4x4oJDJ2nRb0lBBE2c3_Xu8Ffu-Ij52oLlW8nH5RTs1da5PURn_jmn38yTm1XcrkaE_pIK2wkilXz0OIL_qZQdhuHvv2xw_EKG8J6E1fR6JR7umarkOGorLzQHOfKp5sGbto0CQIbEOyguy5fTD2IlwsrZUCOuTLaUpI07wykupqNS954YSWK0mMMWPJRiuBjkK3V4YvVxu3qoVkVNZQNYt-09uVPqYXFVSDwRkEg; .AspNetCore.CookiesC2=VvU2F_TmeMeiVLKe3N9uk2KU7ahtciOVHhkbfSBzDEhaf6bXbfo8hPLdAx2UktsnXcRzpwQaUfyLO7Zop9M_Q9tcpb7YrFbPHFS2ihEkA7IgSsrpQf3G3a2bijDCuoM6avPIPBUUOUCgmcrFXWLWEZwoRGxPnoUNTtoQd11fdazlcBlxFhT_rDwsL-FasaX2UvGzA6oKIiS-6wioionH_Tq7ldHl-6Zs1iBY5ZB7O8Kvb1RTYyB1ka2Rden-M3jl829CJAXGg35IO2dAXJQOL6urFVIThCSrBP9ytf0YCuj3vO4FxeHJA0n0IkFzE1K8JMioGSzll1EG0wp_TB3yfAk9IPSokik2beDG45Dpj8-c3OojIErtEcZZZPe1VW9fDC7egnfCdIKH-ZC5-02QV6bk79pLT9UizRW30lYSuJe7VrBPs36cBtXr1ViNMNAi0Ehx2eB_sPWMH5thtW7XlogJ_UmYAIsmpfqROuRMmWyldFtzcf_w643EIi96qNYlaK3eH_qSrXfDYmVQvfJKjZpiRIga4cjEKx3CJAuQvcqifbnK-TkyCMPsdL8ADGZXsPZwvKqxx8AGKgMz65BddV9NrQqeI6abqjzCZhDcT16CB4AnOaQxOxv8fCEkfGSBTAzFcejelOHZj_BMmLS-W16CA0ltWT9pkVqGRCi-dfd9FBQPr7mPv9vgd-YOQXtAVEkjzXWewsLBWWe8fKc_6sMNpYRCnQQgStMhZ9ICMfIdguI7nBRFKY6X-HWL14TV2oXh_Q1ScvdWpwUH2vDCsyKGE27AfVtz5tWFanOxH7PZ4HBoM59hQ6XmY15jJ4uyWxzZyUHWKDQdDltzjRxoCa-HVdcOhEjA-q5M9Hb11pmZuB4L7s0ZDq_FdLcgf3efyBHBpzHD5grfzYVrg3Q1hILBg0WMqyrQixwhP5p3P0du3amaGLunoz-78JRxQjfdGVQn-BIgN1VoxfpB5ABpammjyQUo5L6XlPgebVizSiSPb9teWGWpbe7StE0is12FwE6IjUX4-dt62yZqg86avhP1eS596JhS2BdROYg-lZZhMgmPfuLKKvjRCkRLNgRCipF017xBnBOnLbM5FD1HFrP8LxMkL6H4XtVVsiZB0eWKiKKAVVHNtlpsF8kkysUEwKkeJkIMM4VjO_OhbntmxHMfcG4GNePL2ad90MYN0HaEO0L_WCaumIDSluva_nBdpPhd2oumjMcv5YVgj7tP1IjKtmnqV7gGZEdcNZIJyvKmBc-hEXpY9RpsOGlkxj8XfUyPs3egXtyRlFpH4FI2f2Jz4mWoG8lc2hbiZZSwUhSZuzfHSbPuQ10RQA_BRHSMDxWf99VMcjJCeqaqnlJTdxOMgjii1WDcqeqROFPcFOGYVwqIK1qmxfx_oSJB-r4KshbP6MQmC5XEYAZLPaCElLO8mtBsQ-x74n6QcnsVALyg8R6lB8LzCevVEQg3acEAQvI6SfPsCOTgMftlYE-79YzvIDkseRG1WuYivtUXZayEZkqPqQYjZcRiqHNKzMsQ9FeGT40gZtKneknW7OQKExG2IUQp4rvOx4LL0RqrLIIwFBL08uSK9OHRJmUNe3PBiYKKL-oy_MCMZY0Pfkty_U-dgu6J_HwwIkUCroercOQPqsgVGNHP1yjpQ66NYTMhXLCn7S74agSXrAmXZkXRbUJEsG2C8H7Vsm89HJKXnV9KxLEL2G2iZO61OZZSp9lmCcJcJd_ORgoJmHCkvkllM7nenAbJooLc3s-e4zYgkqeebgjgFzBlPEpRFpcbnSi4F72ixs4n_ellXJk5R3KPwsuM5WGfVTSJAt72Sz2-v1R3Wndia_RGe2VPlUXaLVVZ60TT4iJ_TgvtBSbsVhCYLkORFy_pvj2UaQdD0pHwQH_OJiN-nD3kL36gm1xaZlpo3JvTI8d0Ib1J-eGcyedCNtjqCwa0_06r-JWlxpWu3vOMzgOnSRHIDQtfRDk8WtYDHc--cbg2Ttarg4Dl7RaBu5Lb_9AYrIu6B1rsnrVPRxjI6Pt9RoJ9XgCFpgvHMXSgU7SoO8jf_j19fD851fRs31tmjE3Vqv3XONsfppFy2dc5GpGg__xS2P6E1c9bcXxdSu-tBPt2JSOk6KrqVP2_ud5fP1pGzwcTIqe48pStbOkaK75Nl5T_b6MNOCVqZ9LOytLVzj7JI74crmx7lCdB991D3QTe-ZAqBbIfTMpat04pvhDtDdIGVEWLDGVDpFBvQS7rHcjmetzUnFHKTn8MOOXta1toadMm-sihCUzWq3FbSrCu8R_S3s_VUPnAAYPtk1pRSYfiUQDgoVCir4IToisWXLCbA6g4lrnh7eczmA4UIpBqN7orJkJuunpfwyfA2AYiNYRvkZRTBODMzpg1c_DCddYmo5kihv4LsMv3yK4HdJnfGlFkxRD_nur0twMZze82wUrvOuUMc9m24AheTOJ_2DGBZ61i4tohgi6btStoSLjZsH1PFCunLi5fL0VokqAjMGacMOQPGq6FlDclIJ753NO2xLB6ELXrfzCAO7Fkt6W7oCkTz0IK8K_P7IxVA3Mn7hlSviZqiM1GVJZb5UF2CpzY1lNgdHDSm91R-LVE9NNvrreagF2M8hi_S3AOUdDHpHUEePce60MUXBYflbbfi-ZyoMA8pJV1hkoTpldHz8y2cec5B7plaAd4roFP-jxlNrcBKq_TA-GHJNvAZVXIPJHOBCtjnN06DMK9orpY7EqILuaCwF266Z9rujYoYRYgwL_I5ASu0w4L6fa1KGTjqF-b7935ndAjaNqS5nVvD6SmYFN2B7o-T0l7TWkCa-GTaARpNIjg6Js9Rp-CvR0o5BDYQycZ_hReBDGDXGFYaGH-bwJnNo4RV9Q38KTBDxamBjVz7AVz8xs-2b1OujUTArPStOhAREm9V64IGDq1fahUx0UspQpj4Q96cl8WZhMQPniI1K_FL21nmSOWPAYNLgHryuNoHI9XnKooh2hsy72sQV6ncyjfAh7XB2AUumfuGjulyW_Vzk4hFjJhebGVeywXpwHsARwRL5OlcDcFdS22T4BZ_xE47RzkNBLW6p7c67Jq2b_KRbB52xKsIJjKzwYc7ATxfciGoNfgjmB3lburppR4fTtD1Tcpvxlght_LYyeXFH3aopsUvVPebsaeLULXMXak4nMBrZZL8DXoFehv-mjEWaQoo09jPCzbntugrx46OFgTsz59-bhWnjTcfsSbHRU-wlqZo5IXw9r757PQPlQpnrm1iAJBn5u7MdjCgUz0l5cfBYDPc70-yG9Na27EXOEQktZLo5W5MnLkVf0fvMO8pjePMlRzoH77yHz7Zz0mZt-kk1D6WnrKuc3c1s3_8-cjbqpeZFjcFuOXQnc1MpWQEkbmpZSv8SkWyjw0KyyUlQ1O-uaVVxH4_Ie9t8khGyd5embExYXHZ4dri1BpC7MHAp8gM5L8cZyDAZ-4rJMzPYbRth7fwAtOu-q4ew7CNsxoQAhAG6YSWWh0PIgsm2GYzgeVNLO6SmPFX25lvxu77S8GGILx-hVKLl6BnAHw0H3Ej6Tr9QdKz6M4_ueE7svUm7bBuYh0qIzUXcjcD1QVslwNu7xdnePIN1rZDWApUsiPLWTMGzgOPHy0_wej2zd1jSnBzJM8YbjsCcN9sQDj0K9P7u2TnHO1E5d3Mm4qZUHePaDxctcsdN1-2295zoXKm4QvQ6aaFkyscO3dKVoCJIyO1PER_BcMVZWBdeq
This is the first instance of this I've seen. Those are large cookies, but certainly not unmanageable. Can you validate the slowness in a test? Add one to WebSocketConnectionInfoTests.cs and see what the run time is.
Fine, shall I add it to RequestParserTests.cs ?
That would be a good place for it. Then you could add the exact set of HTTP headers