āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻœā§€āĻŦāĻ¨ āĻĨā§‡āĻ•ā§‡: āĻ•ā§€āĻ­āĻžāĻŦā§‡ HTTP āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸ā§āĻĒā§‡āĻ¨ā§€āĻ¯āĻŧāĻĻā§‡āĻ° āĻĒāĻ•ā§āĻˇā§‡ āĻ›āĻŋāĻ˛ āĻ¨āĻž

āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻœā§€āĻŦāĻ¨ āĻĨā§‡āĻ•ā§‡: āĻ•ā§€āĻ­āĻžāĻŦā§‡ HTTP āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸ā§āĻĒā§‡āĻ¨ā§€āĻ¯āĻŧāĻĻā§‡āĻ° āĻĒāĻ•ā§āĻˇā§‡ āĻ›āĻŋāĻ˛ āĻ¨āĻž

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻāĻ•āĻœāĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋ, āĻ¯āĻžāĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻĢā§āĻŸ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ (āĻ†āĻœāĻŋāĻ‰āĻ°) āĻ āĻĨāĻžāĻ•ā§‡, āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡: āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ, āĻ‡āĻ‰āĻ°ā§‹āĻĒ āĻĨā§‡āĻ•ā§‡ āĻ•āĻŋāĻ›ā§ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ•āĻŋāĻ›ā§ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ¤ā§āĻ°ā§āĻŸāĻŋ 400 āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§‡āĻˇ āĻšāĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡āĻ›ā§‡ (āĻ–āĻžāĻ°āĻžāĻĒ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§) āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ .NET-āĻ¤ā§‡ āĻ˛ā§‡āĻ–āĻž, āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡...

āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻšāĻ˛ API, āĻ¯āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻļā§‡āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ†āĻ¸ā§‡āĨ¤ āĻāĻ‡ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• HTTP āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻļā§‹āĻ¨āĻž āĻšāĻ¯āĻŧ āĻšāĻŋāĻ˛, .NET āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻĒāĻĄā§‡ āĻšā§‹āĻ¸ā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡, āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻ…āĻ°ā§āĻĨā§‡ āĻ­āĻžāĻ—ā§āĻ¯āĻŦāĻžāĻ¨ āĻ¯ā§‡ āĻāĻ•āĻœāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ›āĻŋāĻ˛ā§‡āĻ¨ āĻ¯āĻŋāĻ¨āĻŋ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻĒā§āĻ¨āĻ°ā§āĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛ā§‡āĻ¨āĨ¤ āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻšā§‡āĻ‡āĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻœāĻŸāĻŋāĻ˛ āĻ›āĻŋāĻ˛:

āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻœā§€āĻŦāĻ¨ āĻĨā§‡āĻ•ā§‡: āĻ•ā§€āĻ­āĻžāĻŦā§‡ HTTP āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸ā§āĻĒā§‡āĻ¨ā§€āĻ¯āĻŧāĻĻā§‡āĻ° āĻĒāĻ•ā§āĻˇā§‡ āĻ›āĻŋāĻ˛ āĻ¨āĻž

āĻ‡āĻ¨āĻ—ā§āĻ°ā§‡āĻ¸ā§‡ āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻŸāĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻāĻ‡āĻ°āĻ•āĻŽ āĻ›āĻŋāĻ˛:

{
   "number_fields":{
      "status":400,
      "request_time":0.001,
      "bytes_sent":465,
      "upstream_response_time":0,
      "upstream_retries":0,
      "bytes_received":2328
   },
   "stream":"stdout",
   "string_fields":{
      "ingress":"app",
      "protocol":"HTTP/1.1",
      "request_id":"f9ab8540407208a119463975afda90bc",
      "path":"/api/sign-in",
      "nginx_upstream_status":"400",
      "service":"app",
      "namespace":"production",
      "location":"/front",
      "scheme":"https",
      "method":"POST",
      "nginx_upstream_response_time":"0.000",
      "nginx_upstream_bytes_received":"120",
      "vhost":"api.app.example.com",
      "host":"api.app.example.com",
      "user":"",
      "address":"83.41.81.250",
      "nginx_upstream_addr":"10.240.0.110:80",
      "referrer":"https://api.app.example.com/auth/login?long_encrypted_header",
      "service_port":"http",
      "user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36",
      "time":"2019-03-06T18:29:16+00:00",
      "content_kind":"cache-headers-not-present",
      "request_query":""
   },
   "timestamp":"2019-03-06 18:29:16",
   "labels":{
      "app":"nginx",
      "pod-template-generation":"6",
      "controller-revision-hash":"1682636041"
   },
   "namespace":"kube-nginx-ingress",
   "nsec":6726612,
   "source":"kubernetes",
   "host":"k8s-node-55555-0",
   "pod_name":"nginx-v2hcb",
   "container_name":"nginx",
   "boolean_fields":{}
}

āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡, āĻ•ā§‡āĻ¸ā§āĻŸā§āĻ°ā§‡āĻ˛ āĻĻāĻŋāĻ¯āĻŧā§‡āĻ›ā§‡āĻ¨:

HTTP/1.1 400 Bad Request
Connection: close
Date: Wed, 06 Mar 2019 12:34:20 GMT
Server: Kestrel
Content-Length: 0

āĻāĻŽāĻ¨āĻ•āĻŋ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ• āĻļāĻŦā§āĻĻāĻšāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡āĻ“, āĻ•ā§‡āĻ¸ā§āĻŸā§āĻ°ā§‡āĻ˛ āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻŸāĻŋ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻ¤āĻĨā§āĻ¯:

{
   "number_fields":{"ThreadId":76},
   "stream":"stdout",
   "string_fields":{
      "EventId":"{"Id"=>17, "Name"=>"ConnectionBadRequest"}",
      "SourceContext":"Microsoft.AspNetCore.Server.Kestrel",
      "ConnectionId":"0HLL2VJSST5KV",
      "@mt":"Connection id "{ConnectionId}" bad request data: "{message}"",
      "@t":"2019-03-07T13:06:48.1449083Z",
      "@x":"Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: Malformed request: invalid headers.n   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection.TryParseRequest(ReadResult result, Boolean& endConnection)n   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.<ProcessRequestsAsync>d__185`1.MoveNext()",
      "message":"Malformed request: invalid headers."
   },
   "timestamp":"2019-03-07 13:06:48",
   "labels":{
      "pod-template-hash":"2368795483",
      "service":"app"
   },
   "namespace":"production",
   "nsec":145341848,
   "source":"kubernetes",
   "host":"k8s-node-55555-1",
   "pod_name":"app-67bdcf98d7-mhktx",
   "container_name":"app",
   "boolean_fields":{}
}

āĻŽāĻ¨ā§‡ āĻšāĻšā§āĻ›ā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° tcpdump āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻŦā§‡... āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻŋ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• āĻšā§‡āĻ‡āĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°āĻŦ:

āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻœā§€āĻŦāĻ¨ āĻĨā§‡āĻ•ā§‡: āĻ•ā§€āĻ­āĻžāĻŦā§‡ HTTP āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸ā§āĻĒā§‡āĻ¨ā§€āĻ¯āĻŧāĻĻā§‡āĻ° āĻĒāĻ•ā§āĻˇā§‡ āĻ›āĻŋāĻ˛ āĻ¨āĻž

āĻ¤āĻĻāĻ¨ā§āĻ¤

āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ¤āĻ‡, āĻāĻŸāĻŋ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻļā§āĻ¨āĻ¤ā§‡ āĻ­āĻžāĻ˛ āĻ¯ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¨ā§‹āĻĄ āĻ‰āĻĒāĻ°, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻāĻ•āĻŸāĻŋ āĻĒāĻĄ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡: āĻĄāĻžāĻŽā§āĻĒā§‡āĻ° āĻ†āĻ¯āĻŧāĻ¤āĻ¨ āĻāĻŽāĻ¨ āĻšāĻŦā§‡ āĻ¯ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻ•āĻŋāĻ›ā§ āĻĻā§āĻ°ā§āĻ¤ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻšāĻŦā§‡āĨ¤ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ•ā§ƒāĻ¤āĻĒāĻ•ā§āĻˇā§‡, āĻāĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻĢā§āĻ°ā§‡āĻŽāĻŸāĻŋ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°āĻž āĻ—ā§‡āĻ›ā§‡:

GET /back/user HTTP/1.1
Host: api.app.example.com
X-Request-ID: 27ceb14972da8c21a8f92904b3eff1e5
X-Real-IP: 83.41.81.250
X-Forwarded-For: 83.41.81.250
X-Forwarded-Host: api.app.example.com
X-Forwarded-Port: 443
X-Forwarded-Proto: https
X-Original-URI: /front/back/user
X-Scheme: https
X-Original-Forwarded-For: 83.41.81.250
X-Nginx-Geo-Client-Country: Spain
X-Nginx-Geo-Client-City: M.laga
Accept-Encoding: gzip
CF-IPCountry: ES
CF-RAY: 4b345cfd1c4ac691-MAD
CF-Visitor: {"scheme":"https"}
pragma: no-cache
cache-control: no-cache
accept: application/json, text/plain, */*
origin: https://app.example.com
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36
referer: https://app.example.com/auth/login
accept-language: en-US,en;q=0.9,en-GB;q=0.8,pl;q=0.7
cookie: many_encrypted_cookies; .AspNetCore.Identity.Application=something_encrypted; 
CF-Connecting-IP: 83.41.81.250
True-Client-IP: 83.41.81.250
CDN-Loop: cloudflare

HTTP/1.1 400 Bad Request
Connection: close
Date: Wed, 06 Mar 2019 12:34:20 GMT
Server: Kestrel
Content-Length: 0

āĻĄāĻžāĻŽā§āĻĒāĻŸāĻŋ āĻ˜āĻ¨āĻŋāĻˇā§āĻ āĻ­āĻžāĻŦā§‡ āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡, āĻļāĻŦā§āĻĻāĻŸāĻŋ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°āĻž āĻ—ā§‡āĻ˛ M.laga. āĻāĻŸāĻž āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻž āĻ¸āĻšāĻœ āĻ¯ā§‡ āĻ¸ā§āĻĒā§‡āĻ¨ā§‡ āĻ•ā§‹āĻ¨ M.laga āĻļāĻšāĻ° āĻ¨ā§‡āĻ‡ (āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻ›ā§‡ āĻŽāĻžāĻ˛āĻžāĻ—āĻž) āĻāĻ‡ āĻ§āĻžāĻ°āĻŖāĻžāĻŸāĻŋ āĻ§āĻ°ā§‡ āĻ°ā§‡āĻ–ā§‡, āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¨āĻ—ā§āĻ°ā§‡āĻ¸ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¤āĻžāĻ•āĻžāĻ˛āĻžāĻŽ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ• āĻŽāĻžāĻ¸ āĻ†āĻ—ā§‡ āĻĸā§‹āĻ•āĻžāĻ¨ā§‹ āĻĻā§‡āĻ–ā§‡āĻ›āĻŋ (āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡) "āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ" āĻ¸ā§āĻ¨āĻŋāĻĒā§‡āĻŸ:

    ingress.kubernetes.io/configuration-snippet: |
      proxy_set_header X-Nginx-Geo-Client-Country $geoip_country_name;
      proxy_set_header X-Nginx-Geo-Client-City $geoip_city;

āĻāĻ‡ āĻšā§‡āĻĄāĻžāĻ° āĻĢāĻ°āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻŋāĻ‚ āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°, āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ āĻŋāĻ• āĻšāĻ¯āĻŧā§‡ āĻ—ā§‡āĻ˛! (āĻāĻŸāĻŋ āĻļā§€āĻ˜ā§āĻ°āĻ‡ āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻšāĻ¯āĻŧā§‡ āĻ—ā§‡āĻ˛ āĻ¯ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ° āĻ†āĻ° āĻāĻ‡ āĻļāĻŋāĻ°ā§‹āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¨ā§‡āĻ‡āĨ¤)

āĻāĻ–āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻž āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ• āĻ†āĻ°ā§‹ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡. āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻŸā§‡āĻ˛āĻ¨ā§‡āĻŸ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻ¸āĻšāĻœā§‡āĻ‡ āĻĒā§āĻ¨āĻ°ā§āĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ localhost:80:

GET /back/user HTTP/1.1
Host: api.app.example.com
cache-control: no-cache
accept: application/json, text/plain, */*
origin: https://app.example.com
Cookie: test=Desiree

... āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸ā§‡ 401 Unauthorized, āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤. āĻ†āĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻ•āĻ°āĻŋ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ•āĻŋ āĻšāĻŦā§‡:

GET /back/user HTTP/1.1
Host: api.app.example.com
cache-control: no-cache
accept: application/json, text/plain, */*
origin: https://app.example.com
Cookie: test=DÊsirÊe

?

āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸āĻŦā§‡ 400 Bad request — āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ˛āĻ—ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻĒāĻžāĻŦ āĻ¯āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤:

{
   "@t":"2019-03-31T12:59:54.3746446Z",
   "@mt":"Connection id "{ConnectionId}" bad request data: "{message}"",
   "@x":"Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: Malformed request: invalid headers.n   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection.TryParseRequest(ReadResult result, Boolean& endConnection)n   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.<ProcessRequestsAsync>d__185`1.MoveNext()",
   "ConnectionId":"0HLLLR1J974L9",
   "message":"Malformed request: invalid headers.",
   "EventId":{
      "Id":17,
      "Name":"ConnectionBadRequest"
   },
   "SourceContext":"Microsoft.AspNetCore.Server.Kestrel",
   "ThreadId":71
}

āĻĢāĻ˛āĻžāĻĢāĻ˛

āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻ°ā§‡ āĻ•ā§‡āĻ¸ā§āĻŸā§āĻ°ā§‡āĻ˛ āĻ¨āĻžāĻ°āĻž UTF-8-āĻ āĻ¸āĻ āĻŋāĻ• āĻ…āĻ•ā§āĻˇāĻ° āĻ¸āĻš HTTP āĻļāĻŋāĻ°ā§‹āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸ āĻ•āĻ°ā§āĻ¨, āĻ¯āĻž āĻŽā§‹āĻŸāĻžāĻŽā§āĻŸāĻŋ āĻŦāĻĄāĻŧ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻ• āĻļāĻšāĻ°ā§‡āĻ° āĻ¨āĻžāĻŽā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ•āĻžāĻ°āĻŖ āĻšāĻ˛ āĻ¯ā§‡ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ¤ā§‡ āĻ•ā§‡āĻ¸ā§āĻŸā§āĻ°ā§‡āĻ˛ā§‡āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤ āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, AspNetCore āĻ¨āĻŋāĻœā§‡āĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ (№4318, №7707) āĻ¤āĻžāĻ°āĻž āĻŦāĻ˛ā§‡ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻŦā§‡ āĻ¨āĻž ...

āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒā§‡ āĻŦāĻ˛āĻž āĻ¯āĻžāĻ¯āĻŧ: āĻ¨ā§‹āĻŸāĻŸāĻŋ āĻ†āĻ° āĻ•ā§‡āĻ¸ā§āĻŸā§āĻ°ā§‡āĻ˛ āĻŦāĻž UTF-8 (2019 āĻ¸āĻžāĻ˛ā§‡?!) āĻāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻāĻ‡ āĻ¸āĻ¤ā§āĻ¯āĻŸāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŽāĻ¨āĻ¨āĻļā§€āĻ˛āĻ¤āĻž āĻāĻŦāĻ‚ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻ• āĻ…āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ†āĻĒāĻ¨āĻŋ āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°ā§‡āĻ¨ āĻ¤āĻž āĻļā§€āĻ˜ā§āĻ°āĻ‡ āĻŦāĻž āĻĒāĻ°ā§‡ āĻĢāĻ˛ āĻĻā§‡āĻŦā§‡āĨ¤ āĻļā§āĻ­āĻ•āĻžāĻŽāĻ¨āĻž!

āĻĻā§āĻ°āĻˇā§āĻŸāĻŦā§āĻ¯

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦā§āĻ˛āĻ—ā§‡āĻ“ āĻĒāĻĄāĻŧā§āĻ¨:

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨