質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

解決済

3回答

6882閲覧

AjaxでGET使うのかPOSTを使うのか分からない。

norino

総合スコア10

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

1クリップ

投稿2020/08/20 12:05

Ajaxの通信タイプGET or POST ?

$.ajax({ url: 'data/content.json', type: 'GET', dataType: 'json', timeout: 10000, }).then( (data, textStatus, jqXHR) => { // 何らかの処理 }, (jqXHR, textStatus, errorThrown) => { // エラー処理 } ); const xhr = new XMLHttpRequest(); const url = 'data/content.json'; xhr.onreadystatechange = function () {     if (xhr.readyState === 4) { if (xhr.status === 200 || xhr.status === 304) { const data = JSON.parse(xhr.responseText); // 処理 } } } xhr.open('GET', url, true); xhr.send(null);

こんな感じで JavaScrupt や jQuery でAjax通信を行うのは分かるのですが、
GET と POST のどちらを使えば良いのか分かりません。

GET ・・・ 少量通信
POST ・・・ 大量通信

ってな感じだと自分では解釈しています。
しかし、何バイトから何バイトまでがGETで、
POSTは何バイト以上とか、何バイトまでとかってあったら教えて欲しいです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

GET ・・・ 少量通信

POST ・・・ 大量通信
ってな感じだと自分では解釈しています。

微妙です。
そういった側面もあるといえばありますが、Method の役割は以下の RFC を参照すると良いです。

rfc7231

+---------+-------------------------------------------------+-------+ | Method | Description | Sec. | +---------+-------------------------------------------------+-------+ | GET | Transfer a current representation of the target | 4.3.1 | | | resource. | | | POST | Perform resource-specific processing on the | 4.3.3 | | | request payload. | |

各セクションを参照してください。

投稿2020/08/20 19:24

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

norino

2020/08/21 11:59

te2jiさん、回答ありがとうございます。 RFC読みました、というか英語ばかりで難しかったです。 google翻訳使って読みましたが、話の半分も入ってきませんでした。 自分の知識不足が恥ずかしいです。 しかし、微妙ですとお答えしてくださったように、 GETとPOSTの考え方が、自分の理解しているものと違うのだということは なんとなく分かりました。 とても貴重な資料含めて、 ありがとうございました。
退会済みユーザー

退会済みユーザー

2020/08/21 16:02

tacsheaven さんの POST の説明はちょっと怪しいです。 4.3.3 だけでも、再読すると良いですよ。
guest

0

処理的にはpostのformdata処理が一番ラクです
ただし生のjsonひっぱるだけならパラメータ関係なさそうなので
どちらでもよいです

投稿2020/08/20 12:22

編集2020/08/20 12:28
yambejp

総合スコア114784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/08/20 12:33

きょうびXMLHttpRequestは流行ってないでしょう・・・ const url='data/content.json', const data=fetch(url).then(res=>res.json());
norino

2020/08/20 13:22

どちらも使ったことのないメソッドなので予備知識がない状態で話させて頂きます。 formdataはさっと読んだのですが、まだまだ理解できていませんのですいません。 fetchは、これが終わったら入ろうとしてたところなので頑張ります。 まず、fetchもformdataも非同期通信ができるのでしょうか? ここでyambejpさんがお答えしてくれている時点でそうなのだと思うのですが、あってますか? それから、fetchとformdataを使うメリット教えて頂くとありがたいです。 formdataを使うと処理が1番楽とおっしゃってますが、どういうところが楽なのか教えてください。 fetchよりもformdataの方が優れているのでしょうか? 質問ばかりですいません。 どうかよろしくお願いいたします。
yambejp

2020/08/21 00:32

FormDataの利点は所定のformの値をまるっと掴むことができることです。 またformがなくても値をappendすることができます //send.html const body=Object.entries({a:1,b:2}).reduce((x,y)=>(x.append(y[0],y[1]),x),new FormData()); const method="post"; const url="recv.php"; fetch(url,{body,method}).then(res=>res.text()).then(console.log); //recv.php <?PHP print_r($_POST); のように簡単に表記できます
norino

2020/08/21 11:50

yambejpさん、サンプルまで書いてくださってありがとうございます。 phpは未修得なのでちょっと分かりませんが、fetchとformdata覚えて理解したいと思います。 どうもありがとうございました。
guest

0

ベストアンサー

そもそも GET と POST は役割が違います。
GET:指定した URL のリソースを取り出す
POST:指定した URL にデータを送出する

GETでパラメータを指定することで、同じ URL(のページ)であっても別の結果が得られる、のですが、このことから GET では

  • パラメータはあまり長くできない(URL としての長さ制限が Web サーバ側にある)
  • パラメータは URL エンコードしていなくてはならない(そのまま多言語文字を送ることはできない)

という制約が出てきます。

一方 POST はそのような制限はない(POST の場合 HTTP のボディ部としてデータが送られる)ので、大容量だったり複雑なデータを送るのには向いています。
ですが本来は POST は「サーバ上のリソース(データ)に、何かしらの影響を与える(追加だったり更新だったり)」ものとして考えられたものです。その意味では単純な検索で POST を使うのは(本来の意味からは)少し外れたものと考えることもできます。

まあ、今ではそんなこと考えずに POST に集約してしまうのも手だと思いますが。
※GET の場合 URL に書かれるので送信した情報がすぐ見て分かるというのはあります

投稿2020/08/20 23:54

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

norino

2020/08/21 12:15

tacsheavenさん、回答ありがとうございます。 この範囲の知識がまだまだ未熟なのだと痛感しました。 しかし、とても説明が丁寧で私には分かりやすかったです。 どうもありがとうございました。 この部分を詳しく勉強できるサイトでも本でもあったら是非教えてください。 よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問