# ⑱12/20(日) 16.3 ###### tags:`Webを支える技術` ## 16.3 @Saki - リソースの作成方法2つ > 一つはファクトリリソース(Factoryresource)へPOSTする方法で、もう一つはPUTで直接作成する方法 - ここでHTTPメソッドが出てくるのか。なつかしい。 - 7章HTTPメソッドについてまとめたメモ [HTTPメソッド(Webを支える技術:7章)](https://scrapbox.io/output5000/HTTP%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89(Web%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93:7%E7%AB%A0)) - POSTには3つの役割があり、今回はその一つである「子リソースの作成」をしてるということ? - @皐月  🤔 →「ファクトリリソースが親リソースとして、POSTによって子リソースを作成している!」というふうに、解釈しました! - @Saki なるほど! - この例では、`http://zip.ricollab.jp`というトップレベルリソースに、`9999999`というリソースを作成している。 > ![](https://i.imgur.com/nms80s0.png) - **トップレベルリソース**:他のリソースへリンクする大本となるリソース - ❓本の説明だと、どれがファクトリリソースか分からない。。 > ファクトリリソースそれ自身はWebサービスによってあらかじめ用意しておき、POSTで新しいリソースを作成します - 【復習】 PUTとPOSTの違い > 今回の場合、郵便番号によってリソースのURI(パス)があらかじめ決まっているので、郵便番号リソースはPUTでも作成できます。 ![](https://i.imgur.com/O9Xu1em.png) - あれ?PUTメソッドでリソース作成すろとPOSTとちがってレスポンスに作成されたURIが書いてない →PUTはPOSTと違って、作成するリソースをクライアント側で自由に作成できる。リクエストを見ると、`PUT /9999999`とあり、クライアントが作成するURIを決めている。クライアントはすでにURIが分かってるから、レスポンスには作成されたURIのパス:`Location`ヘッダが返ってきてない - ❓PUTのデメリット:「クライアントがURI構造をあらかじめ知っておかなければならない」とあるが、ブラウザを使っていて、知っておかないとって思った経験が無い気がする。ブラウザでなく、WebAPIがクライアントのときの話? @皐月 - ファクトリリソースでPOSTする方法、PUTで直接作成する方法 - ファクトリリソース:リソースを作るための特別なリソース - @saki factory=工場=「リソースを作る工場」って考えると分かりやすいかもですね - @皐月 なるほどです! - みなさん、どこで(なにで)リクエストを確認するんだ...? Google chromeの検証?ではないよね... - @Saki 私もそれがずっと気になってます。。検証ツールは確認はできますけど設定変更はできないので、違う気がします... ### 皐月さんの現場のお話 > HTTPリクエストとかレスポンスって、どこで、どんなふうに設定するの?? Webサーバにお願いするの? byteが少ないリクエストやレスポンスはどういうふうに設定するの? byteが少なければ、リクエストが軽くなって、デバイスのバッテリー消費を抑えられるという話を現場で聞いた!! その大切さは理解できましたが(省エネと解釈)、その、その設定をどうやってするんだ?? ってことを聞く! - @Saki たしかに、今回の本でもPOSTとPUTどちらを使うのがいいか?の説明がされていたが、どこに書けばいいのか?と疑問に思いました。 - @皐月 おお、コピペありがとうございます...!