Markdown

[心得] HTTP Method

https://blog.toright.com/posts/1203/%E6%B7%BA%E8%AB%87-http-method%EF%BC%9A%E8%A1%A8%E5%96%AE%E4%B8%AD%E7%9A%84-get-%E8%88%87-post-%E6%9C%89%E4%BB%80%E9%BA%BC%E5%B7%AE%E5%88%A5%EF%BC%9F.html

這篇寫的好棒!

最近為了寫後端測試( 雖然也可以用爬蟲從前端驗證QQ),
將symfony專案的架構從表單改寫成全部透過 json 來作業,
原本的方式是使用form builder,route 都不用我擔心,寫好操作entity的邏輯就好,
現在拔掉了 form builder ,CURD也不用 render twig 嵌入Form去操作 ,
全部改寫成呼叫CURD API  ,將頁面與API分離,
其中 API 要用到許多 response &request ,
一開始完全搞不懂,後端發的request都收不到,也無從驗證,
只好退而求其次先用ajax發request,
沒想到還是出了許多問題,只好研究一下HTTP到底是怎麼運作的。
打開瀏覽器隨便開一個網頁用F12找到 network 觀察 header:


  1. 這是Response Header:

  2. Access-Control-Allow-Origin:
    *
  3. Cache-Control:
    no-cache, private
  4. Connection:
    keep-alive
  5. Content-Type:
    application/json
  6. Date:
    Sat, 03 Jun 2017 22:35:16 GMT
  7. Server:
    nginx/1.10.2
  8. Transfer-Encoding:
    chunked
  9. X-Powered-By:
    PHP/5.6.30
     Request Header:

  1. Accept:
    text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  2. Accept-Encoding:
    gzip, deflate, sdch
  3. Accept-Language:
    zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4
  4. Cache-Control:
    max-age=0
  5. Connection:
    keep-alive
  6. Cookie:
    PHPSESSID=ba8at5vmdvcmsdkmbqaj71l1v3
  7. Host:
    test123
  8. Upgrade-Insecure-Requests:
    1
  9. User-Agent:
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
...

client要訪問一個server 會先發一個request,server接收後再發response給client

使用get的時候,資料會直接接再url後面送出去,
使用post的時候則是會藏在content裡面。

Q:
symfony的router 可以吃參數 不知道使用get 能不能吃到url參數,
感覺設計起來比較方便。
不然用post取得後再設定也是可以。

留言