Description

Macintosh implementation for HTTP requests handle If-None-Match against ETags differently than Windows implementation.

Steps to Reproduce
  1. Download attached projects : Mac is for Mac and PC is for Windows
  2. Extract each on designated operating system
  3. Right click on .uproject and generate Visual Studio / XCode files
  4. Run generated Visual Studio or XCode solution
  5. Run editor in Development Editor
  6. Open map, "default"
  7. PIE
  8. Press "F" - notice log
  9. Press "F" again, notice log

RESULT:

[PC]

LogTemp:Warning: Request Header: ETag: ETag
LogTemp:Warning: Request Header: User-Agent: game=AH492514, engine=UE4, version=4.13.0-0+UE4
LogTemp:Warning: Request Header: Content-Length: 0
LogTemp:Warning: Request Header: Pragma: no-cache
LogTemp:Warning: Request Header: Expect: 
LogTemp:Error: ResponseCode: 200
LogTemp:Warning: Response Header: Server: nginx
LogTemp:Warning: Response Header: Date: Thu, 22 Sep 2016 19:03:20 GMT
LogTemp:Warning: Response Header: Content-Type: application/json
LogTemp:Warning: Response Header: Content-Length: 301
LogTemp:Warning: Response Header: Connection: keep-alive
LogTemp:Warning: Response Header: Last-Modified: Thu, 22 Sep 2016 19:03:20 GMT
LogTemp:Warning: Response Header: ETag: 3319f6fde8fc42bdbcf2f94c00333110
LogTemp:Warning: Response Header: Access-Control-Allow-Origin: *
LogTemp:Warning: Response Header: Access-Control-Allow-Credentials: true
LogTemp:Error: ---
LogTemp:Warning: Request Header: If-None-Match: If-None-Match
LogTemp:Warning: Request Header: ETag: 3319f6fde8fc42bdbcf2f94c00333110
LogTemp:Warning: Request Header: User-Agent: game=AH492514, engine=UE4, version=4.13.0-0+UE4
LogTemp:Warning: Request Header: Content-Length: 0
LogTemp:Warning: Request Header: Pragma: no-cache
LogTemp:Warning: Request Header: Expect: 
LogTemp:Error: ResponseCode: 304
LogTemp:Warning: Response Header: Server: nginx
LogTemp:Warning: Response Header: Date: Thu, 22 Sep 2016 19:03:21 GMT
LogTemp:Warning: Response Header: Connection: keep-alive
LogTemp:Warning: Response Header: Access-Control-Allow-Origin: *
LogTemp:Warning: Response Header: Access-Control-Allow-Credentials: true
LogTemp:Error: ---

[Mac]

LogTemp:Warning: Request Header: Etag: ETag
LogTemp:Warning: Request Header: User-Agent: UE4-HTTPRequest,UE4Ver(4.13.0-3106830+++UE4+Release-4.13)
LogTemp:Error: ResponseCode: 200
LogTemp:Warning: Response Header: access-control-allow-credentials: true
LogTemp:Warning: Response Header: Content-Type: application/json
LogTemp:Warning: Response Header: Server: nginx
LogTemp:Warning: Response Header: Last-Modified: Thu, 22 Sep 2016 18:40:08 GMT
LogTemp:Warning: Response Header: Etag: 349715e046104fd4ac4c7c1d7c6c51c9
LogTemp:Warning: Response Header: Date: Thu, 22 Sep 2016 19:06:31 GMT
LogTemp:Warning: Response Header: Content-Length: 330
LogTemp:Warning: Response Header: Access-Control-Allow-Origin: *
LogTemp:Error: ---
LogTemp:Warning: Request Header: If-None-Match: If-None-Match
LogTemp:Warning: Request Header: Etag: 349715e046104fd4ac4c7c1d7c6c51c9
LogTemp:Warning: Request Header: User-Agent: UE4-HTTPRequest,UE4Ver(4.13.0-3106830+++UE4+Release-4.13)
LogTemp:Error: ResponseCode: 200
LogTemp:Warning: Response Header: access-control-allow-credentials: true
LogTemp:Warning: Response Header: Content-Type: application/json
LogTemp:Warning: Response Header: Server: nginx
LogTemp:Warning: Response Header: Last-Modified: Thu, 22 Sep 2016 18:40:08 GMT
LogTemp:Warning: Response Header: Etag: 349715e046104fd4ac4c7c1d7c6c51c9
LogTemp:Warning: Response Header: Date: Thu, 22 Sep 2016 19:06:32 GMT
LogTemp:Warning: Response Header: Content-Length: 330
LogTemp:Warning: Response Header: Access-Control-Allow-Origin: *
LogTemp:Error: ---

EXPECTED:

Mac receives same Response code as Windows machines when doing the same task of checking If-None-Match against ETag.

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

0
Login to Vote

Fixed
ComponentTools
Affects Versions4.13
Target Fix4.15
Fix Commit3202462
Main Commit3206922
CreatedSep 22, 2016
ResolvedNov 17, 2016
UpdatedApr 27, 2018