---
# System prepended metadata

title: ⑱12/20(日) 16.3
tags: [Webを支える技術]

---

# ⑱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どちらを使うのがいいか？の説明がされていたが、どこに書けばいいのか？と疑問に思いました。
   - @皐月 おお、コピペありがとうございます...！
