HTTP āđāļšāļšāļžāļ·āđ‰āļ™āļāļēāļ™āļŠāļļāļ”āđ†

http_basic

āđ€āļ›āđ‡āļ™āđ€āļĢāļ·āđˆāļ­āļ‡āļ—āļĩāđˆāļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āđ„āļĄāđˆāđ„āļ”āđ‰āļŠāļģāļŦāļĢāļąāļš Â Developer āļ—āļĩāđˆāļˆāļ°āđ€āļˆāļ­āļ„āļģāļ§āđˆāļē HTTP āđ€āļžāļĢāļēāļ°āļĄāļąāļ™āđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļŦāļ™āļķāđˆāļ‡āļ‚āļ­āļ‡āļŠāļĩāļ§āļīāļ•āļ›āļĢāļ°āļˆāļģāļ§āļąāļ™āđ„āļ›āđāļĨāđ‰āļ§āđ€āļžāļĢāļēāļ°āđāļ—āļšāļ—āļļāļāļ­āļĒāđˆāļēāļ‡āđƒāļ™āđ‚āļ—āļĢāļĻāļąāļžāļ—āđŒāļĄāļ·āļ­āļ–āļ·āļ­ āļĢāļ§āļĄāļ–āļķāļ‡ Web āđāļĨāļ°āđ€āļāļĄāļ­āļ­āļ™āđ„āļĨāļ™āđŒÂ āļ™āļąāđ‰āļ™āđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļāļąāļ™āļ”āđ‰āļ§āļĒ HTTP āļ—āļąāđ‰āļ‡āļŠāļīāđ‰āļ™

HTTP āļ„āļ·āļ­āļ­āļ°āđ„āļĢāļĨāđˆāļ°āļ–āđ‰āļēāļ­āļĒāļēāļāļĢāļđāđ‰āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļāđ‡āļˆāļĢāļīāļ‡āļˆāļąāļ‡āļāđ‡āđ„āļ›āļ­āđˆāļēāļ™āđƒāļ™Â Wiki āđ„āļ”āđ‰āđ€āļĨāļĒ

āļŠāļīāđˆāļ‡āļ—āļĩāđˆāļœāļĄāļ­āļĒāļēāļāļˆāļ°āļžāļđāļ”āļ–āļķāļ‡āļ‚āļ­āđ€āļ›āđ‡āļ™āđƒāļ™āļĄāļļāļĄāļ‚āļ­āļ‡ Developer āđāļšāļšāļŠāļąāđ‰āļ™āđ†āļĨāļ°āļāļąāļ™

HTTP āļ™āļąāđ‰āļ™āđ€āļ›āđ‡āļ™ Protocol(āļ‚āđ‰āļ­āļ•āļāļĨāļ‡) āļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāļ•āļīāļ”āļ•āđˆāļ­āļāļąāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļ­āļļāļ›āļāļĢāļ“āđŒāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđ„āļĄāđˆāļ§āđˆāļēāļˆāļ°āđāļšāļšāļ•āđˆāļ­āļŠāļēāļĒāļŦāļĢāļ·āļ­ wireless āļ‹āļķāđˆāļ‡āļˆāļ°āļĄāļĩāļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļŦāļĨāļąāļāđ†āļ„āļ·āļ­ Client(āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļ•āđ‰āļ™āļ—āļēāļ‡) āļāļąāļšÂ Server(āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļ›āļĨāļēāļĒāļ—āļēāļ‡) āđāļĨāļ°āļ—āļģāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđ‚āļ”āļĒāļŠāļīāđˆāļ‡āļ—āļĩāđˆāđ€āļĢāļĩāļĒāļāļ§āđˆāļē HTTP Request/Response

HTTP Request

āļ„āļ·āļ­āļāļēāļĢāļŠāđˆāļ‡āļ„āļģāļŠāļąāđˆāļ‡āđ€āļžāļ·āđˆāļ­āļ‚āļ­āļ‚āđ‰āļ­āļĄāļđāļĨāđ‚āļ”āļĒ Client āđ„āļ›āļĒāļąāļ‡ Server āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ•āļ­āļšāļāļĨāļąāļšāļĄāļē

Client === āļĢāđ‰āļ­āļ‡āļ‚āļ­Â ==> Server

āļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļŠāļģāļ„āļąāļāļ‚āļ­āļ‡Â HTTP Request

  1. URL āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āđ€āļŦāļĄāļ·āļ­āļ™āļ—āļĩāđˆāļ­āļĒāļđāđˆāļ‚āļ­āļ‡ Server āļ—āļĩāđˆāļˆāļ°āđ„āļ›āļ‚āļ­āļ‚āđ‰āļ­āļĄāļđāļĨ
    āđ‚āļ”āļĒāļ—āļĩāđˆ URL āļ™āļąāđ‰āļ™āļāđ‡āļĄāļĩāļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļŦāļĨāļąāļāđ†āļ›āļĢāļ°āļĄāļēāļ“āļ™āļĩāđ‰āļ„āļĢāļąāļš
    Scheme āđ€āļ›āđ‡āļ™āļ•āļąāļ§āļ—āļĩāđˆāļĢāļ°āļšāļļ Protocol āļ‹āļķāđˆāļ‡āđ‚āļ”āļĒāļ›āļāļ•āļīāļˆāļ°āđ€āļ›āđ‡āļ™ http āļŦāļĢāļ·āļ­ https (āļĄāļĩ s āļ„āļ·āļ­ secure āļŦāļĢāļ·āļ­āļĄāļĩāļĢāļ°āļšāļšāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļāļ§āđˆāļē)
    Host Name āđ€āļ›āđ‡āļ™āļŠāļ·āđˆāļ­āļ‚āļ­āļ‡ Server āļ—āļĩāđˆāļ—āļģāļāļēāļĢāļĨāļ‡āļ—āļ°āđ€āļšāļĩāļĒāļ™āđ„āļ§āđ‰
    Port āđ€āļ›āđ‡āļ™āļŦāļĄāļēāļĒāđ€āļĨāļ‚āļŠāļģāļŦāļĢāļąāļšāļĢāļ°āļšāļļāļŠāđˆāļ­āļ‡āļāļēāļĢāļ•āļīāļ”āļ•āđˆāļ­ (āđ€āļŦāļĄāļ·āļ­āļ™āļāļąāļšāđ€āļĢāļēāđ„āļ›āļ˜āļ™āļēāļ„āļēāļĢāđāļĨāđ‰āļ§āļĄāļĩāļŦāļĨāļēāļĒāļŠāđˆāļ­āļ‡āļ—āļĩāđˆāđ€āļ„āļēāđ€āļ•āļ­āļĢāđŒāđƒāļŦāđ‰āļšāļĢāļīāļāļēāļĢ āđāļ•āđˆāļĨāļ°āļŠāđˆāļ­āļ‡āļāđ‡āđƒāļŦāđ‰āļšāļĢāļīāļāļēāļĢāđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™āđƒāļ™āļāļĢāļ“āļĩāļ›āļāļ•āļī) āļ‹āļķāđˆāļ‡āļ›āļāļ•āļīāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļĢāļ°āļšāļļāļāđ‡āđ„āļ”āđ‰āđ€āļžāļĢāļēāļ°āļĄāļĩ Default āļ„āļ·āļ­ 80 āļŠāļģāļŦāļĢāļąāļš http āđāļĨāļ° 443 āļŠāļģāļŦāļĢāļąāļš https
    Path āđ€āļŠāđˆāļ™āļ—āļĩāđˆāļ­āļĒāļđāđˆāļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ āđ„āļŸāļĨāđŒ āļĢāļđāļ›
    Query String āđ€āļ›āđ‡āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāļ—āļĩāđˆāđƒāļŠāđ‰āļĢāļ°āļšāļļāļ§āđˆāļē Client āļ•āđ‰āļ­āļ‡āļāļēāļĢāļ‚āđ‰āļ­āļĄāļđāļĨāļĄāļĩāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ›āļĨāļĩāļāļĒāđˆāļ­āļĒāļĒāļąāļ‡āđ„āļ‡

    āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ€āļŠāđˆāļ™
    https://www.youtube.com/watch?v=ZV-6SJmSw7
    Scheme āļ„āļ·āļ­ https
    Host Name āļ„āļ·āļ­ www. youtube.com
    Port āđ„āļĄāđˆāđ„āļ”āđ‰āļĢāļ°āļšāļļ āļ‹āļķāđˆāļ‡āļ„āđˆāļēāļ›āļāļ•āļīāđ€āļ›āđ‡āļ™ 443 āđ€āļžāļĢāļēāļ°āđ€āļ›āđ‡āļ™ https
    Path āļāđ‡āļ„āļ·āļ­ watch
    Query String āļ„āļ·āļ­ v=ZV-6SJmSw7

  2. HTTP Headers āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āđ€āļŦāļĄāļ·āļ­āļ™āļāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāļ—āļĩāđˆāđāļ™āļšāđ„āļ›āđƒāļŦāđ‰ Server āļĢāļąāļšāļĢāļđāđ‰āļ§āđˆāļē āđ€āļŠāđˆāļ™ āļĄāļēāļˆāļēāļāļ­āļļāļ›āļāļĢāļ“āđŒāđāļšāļšāđ„āļŦāļ™ Version āļ­āļ°āđ„āļĢ āļ•āđ‰āļ­āļ‡āļāļēāļĢāļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļšāđ„āļŦāļ™
  3. Cookies āđ€āļ›āđ‡āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđ„āļĄāđˆāđƒāļŦāļāđˆāļĄāļēāļāļ—āļĩāđˆāļ—āļēāļ‡ Server āļŠāļēāļĄāļēāļĢāļ–āļāļēāļāđ„āļ§āđ‰āļ—āļĩāđˆ Client āđ„āļ”āđ‰
  4. Method āļŦāļĢāļ·āļ­ Verb āđ€āļ›āđ‡āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļšāļ­āļāļ§āđˆāļē Client āļ•āđ‰āļ­āļ‡āļāļēāļĢāļ—āļģāļ­āļ°āđ„āļĢāļāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨ āđ€āļžāļ·āđˆāļ­āļ—āļĩāđˆ Server āļˆāļ°āđ„āļ”āđ‰āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰āļ•āļĢāļ‡āļ•āļēāļĄāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢ āļ›āļāļ•āļīāļ—āļĩāđˆāļˆāļ°āđ€āļˆāļ­āļāļąāļ™āļāđ‡ GET, POST, PUT āļ•āļēāļĄāđāļ•āđˆāļ›āļĢāļ°āđ€āļ āļ—āļ‚āļ­āļ‡āļāļēāļĢāļ‚āļ­āļ‚āđ‰āļ­āļĄāļđāļĨāļ„āļĢāļąāļš āļ‹āļķāđˆāļ‡āļ•āļ­āļ™āļ­āļ­āļāđāļšāļš Server āļ•āđ‰āļ­āļ‡āļ­āļ­āļāđāļšāļšāļ§āđˆāļēāļāļēāļĢāđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđāļ•āđˆāļĨāļ°āđāļšāļšāļˆāļ°āđƒāļŦāđ‰āđƒāļŠāđ‰ Method āđāļšāļšāđ„āļŦāļ™
  5. Request Body āļŦāļĢāļ·āļ­ Payload āđ€āļ›āđ‡āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđ€āļ­āļēāđ„āļ§āđ‰āļĢāļ°āļšāļļāļ§āđˆāļēāļ„āļģāļŠāļąāđˆāļ‡āļ‚āļ­āļ‚āđ‰āļ­āļĄāļđāļĨāļ™āļąāđ‰āļ™āđ†āļĄāļĩāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ­āļ°āđ„āļĢāļšāđ‰āļēāļ‡ āļ­āđˆāļēāļ™āļ”āļđāđāļĨāđ‰āļ§āđ€āļŦāļĄāļ·āļ­āļ™ Query String āļ‹āļķāđˆāļ‡āļ›āļāļ•āļīāļˆāļ°āđƒāļŠāđ‰āļāļąāļšāđāļšāļš GET
    āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļ•āļąāļ§ Request Body āđ€āļ™āļĩāđˆāļĒāļˆāļ°āđ„āļ”āđ‰āđƒāļŠāđ‰āđƒāļ™āļāļēāļĢ Request āđāļšāļš POST/PUT

āļ•āļąāļ§āļ­āļĒāđˆāļēāHTTP Request āđāļšāļšāļ”āļīāļšāđ†

POST h ttps://play.google.com/log?format=json HTTP/1.1
Host: play.google.com
Connection: keep-alive
Content-Length: 417
accept: */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
content-type: application/x-www-form-urlencoded;charset=UTF-8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8
Cookie: HSID=AiNeRb8SXTipvwqNT; SSID=AUnId0mBjkh8FuXrP;

[[1,null,null,null,null,null,null,null,[“en-US”,”chrome”,”51.0.2704.103″,”22.0.0″],null,[null,”10.0″,3,null,”en-TH”,2]],78,[[“1469717946642″,null,[],null,null,null,null,”[null,null,null,null,null,null,null,null,null,null,null,[[null,1,null,null,null,null,243,2051499711]],null,null,[1600,900],null,null,null,null,null,null,null,null,[]]”,null,null,null,null,null,null,null,null,null,null,null,[]]],”1469717946643″,[]]

āļŠāļĩāđāļ”āļ‡ āļ„āļ·āļ­ Method/Verb
āļŠāļĩāļŠāđ‰āļĄ āļ„āļ·āļ­ URL
āļŠāļĩāđ€āļ‚āļĩāļĒāļ§ āļ„āļ·āļ­ Version āļ‚āļ­āļ‡ HTTP āļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢ request
āļŠāļĩāļĄāđˆāļ§āļ‡ āļ„āļ·āļ­ Headers
āļŠāļĩāļ™āđ‰āļģāđ€āļ‡āļīāļ™ āļ„āļ·āļ­ Cookie
āļŠāļĩāļŠāļĄāļžāļđ āļ„āļ·āļ­ Request Body

HTTP Response

āļ„āļ·āļ­āļāļēāļĢāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļ—āļēāļ‡ Server āļ™āļąāđ‰āļ™āļ•āļ­āļšāļĢāļąāļšāļāļĨāļąāļšāđ„āļ›āļĒāļąāļ‡ Client āļ•āļēāļĄāļ—āļĩāđˆāđ„āļ”āđ‰āļ‚āļ­āļĄāļē

Client <== āļ•āļ­āļšāļĢāļąāļšÂ === Server

āļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļŠāļģāļ„āļąāļāļ‚āļ­āļ‡Â HTTP Response

  1. HTTP Status Code āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āļĢāļŦāļąāļŠāļšāļ­āļāļŠāļ–āļēāļ™āļ°āļ§āđˆāļē āļāļēāļĢ Request āļ„āļĢāļąāđ‰āļ‡āļ™āļąāđ‰āļ™āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļ•āļ­āļšāļĢāļąāļšāđ€āļ›āđ‡āļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢ
  2. HTTP Response Headers āđ€āļ›āđ‡āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāļ—āļĩāđˆāđāļ™āļšāļĄāļēāđ‚āļ”āļĒ Server āđ€āļŠāđˆāļ™ āļ‚āđ‰āļ­āļĄāļđāļĨāļĄāļĩāļ‚āļ™āļēāļ”āđ€āļ—āđˆāļēāđ„āļŦāļĢāđˆ āđ€āļ›āđ‡āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ›āļĢāļ°āđ€āļ āļ—āđ„āļŦāļ™
  3. Response Body āđ€āļ›āđ‡āļ™āļ•āļąāļ§āđ€āļ™āļ·āđ‰āļ­āļ„āļ§āļēāļĄāļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļĢāļīāļ‡āđ†āļ—āļĩāđˆ Server āļ™āļąāđ‰āļ™āļ•āļ­āļšāļāļĨāļąāļšāļĄāļēāļ—āļĩāđˆ Client

āļ•āļąāļ§āļ­āļĒāđˆāļēā HTTP Response āđāļšāļšāļ”āļīāļšāđ†

HTTP/1.1 200 OK
Access-Control-Allow-Origin: https://www.google.co.th
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: X-Playlog-Web
Content-Type: text/plain; charset=UTF-8
Date: Thu, 28 Jul 2016 14:59:04 GMT
Server: Playlog
Cache-Control: private
Expires: Thu, 28 Jul 2016 14:59:04 GMT
Content-Length: 47

[“900000″,null,[null,”2570847921467975139”],[]]

āļŠāļĩāđ€āļ‚āļĩāļĒāļ§ āļ„āļ·āļ­ Version āļ‚āļ­āļ‡ HTTP āļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢ request
āļŠāļĩāļŠāđ‰āļĄ āļ„āļ·āļ­ Status Code āļ‹āļķāđˆāļ‡ 200 āļ„āļ·āļ­āļŠāļģāđ€āļĢāđ‡āļˆ (OK)

āļŠāļĩāļĄāđˆāļ§āļ‡ āļ„āļ·āļ­ Response Headers
āļŠāļĩāļŠāļĄāļžāļđ āļ„āļ·āļ­ Response Body

āļĄāļēāļ–āļķāļ‡āļ•āļĢāļ‡āļ™āļĩāđ‰āđāļĨāđ‰āļ§āļ—āļļāļāļ„āļ™āļāđ‡āļ„āļ‡āđ€āļ‚āđ‰āļēāđƒāļˆāļžāļ·āđ‰āļ™āļāļēāļ™āļŦāļĨāļąāļāđ†āļ‚āļ­āļ‡ HTTP āđāļĨāđ‰āļ§āļ™āļ°āļ„āļĢāļąāļš (y)
āđāļĨāđ‰āļ§āļžāļ­āļ—āļĢāļēāļšāļĄāļąāđ‰āļĒāļ„āļĢāļąāļšāļ§āđˆāļēāļāļēāļĢāļāļ” Link āļšāļ™āđ€āļ§āļ›āļŦāļĢāļ·āļ­āļāļēāļĢāļžāļīāļĄāļžāđŒ URL āđ€āļ›āđ‡āļ™āļāļēāļĢ Request āđāļšāļšāđ„āļŦāļ™ ðŸ™‚