+ JavaScript の質問用スレッド vol.124 + [転載禁止]©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2015/03/22(日) 16:19:45.75ID:nW67tQ7U
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。


+ JavaScript の質問用スレッド vol.123 +
http://peace.2ch.net/test/read.cgi/hp/1423915644/

(ライブラリ禁止条項は、多数の意見によって廃止されました。ライブラリの質問もOKです)

0952デフォルトの名無しさん2018/02/18(日) 15:16:19.87ID:F2O3xW/S
ん? もしかして>>834もそうなのかもしれないが、他のやつも
404が「サーバーから返すもの」
つまり HTTPというプロトコルを使ってクライアントから
サーバーにアクセスした時に、サーバーからクライアントへ
返すものだって分かってないのか?

0953デフォルトの名無しさん2018/02/18(日) 15:19:01.00ID:F2O3xW/S
404はHTTPプロトコルレベルの話なんだから、

仮にHTMLとJavaScriptだけで動くものがって
一切サーバーとアクセスしない=HTTPプロトコルを使わない場合
には、当然HTTPプロトコルレベルの話であるHTTPステータスコード404(200も)はでてこない。

これは常識だよね?
ここまではいいよね?

0954デフォルトの名無しさん2018/02/18(日) 15:36:21.08ID:Ct2k6iqr
そもそも>>834の言う

>SPAを作る時にページが存在しない場合に

の解釈が違っている気がする。
俺はそもそもどういう状況のことを言っているのか理解できなかったが。

0955デフォルトの名無しさん2018/02/18(日) 15:46:08.25ID:AYB00j0e
一切アクセスをしないと言えど、リロード時にはリクエストは飛ぶからな。サービスワーカーにでも。
その時帰ってくるのはコンテンツとしては200、ただしHTML/JSが表示するのは存在しないというエラーになるだろうが。

プロトコル上の404と、ソフト404(≒200)はもちろん区別ついてるが、一般的にソフト404と呼ぶんだよ。
ソフト404ってのはプロトコル上のエラーコードを概念的な名前として使ってるだけであって。

お前が、周りが何を問題にしてるかわかってないんだろう。

いろんな問題をごちゃまぜにした結果馬鹿な事言ってると思いたいわ。

0956デフォルトの名無しさん2018/02/18(日) 15:48:40.21ID:F2O3xW/S
>>954

俺はHTTPステータスコード404を返したいんだから、
HTTPプロトコルでサーバーにアクセスのは当然の話として

> SPAを作る時にページが存在しない場合にをどうやって404を返せばいいんでしょうか?
というのは今現在200が返ってきてしまって困っているという状況には
>>917 で説明したパターンで起こるのを知っているからその話だと理解した

下手な作りだと、例えば http://example.com/foo/1 でデータがなくて
普通のウェブアプリだと404が返ってくる状況でも、(下手な)SPAの作りだと
>>917みたいに一旦 SPA(Single Page Application)のシングルに相当するページを表示してから、
(404になる)データを読み込むという流れだから、200になってしまう。

これを404にするにはどうすればいいかの話をしていたんだが?



そうか、やけにサーバーにアクセスしないことも有るって強調していたのは
HTTPリクエストを伴わないからそもそもHTTPの404の話なんかでてこないことに
気づいていなかったんだろうな。その時点で話について来れてなかったのか

0957デフォルトの名無しさん2018/02/18(日) 15:52:23.09ID:F2O3xW/S
>>955
> 一切アクセスをしないと言えど、リロード時にはリクエストは飛ぶからな。サービスワーカーにでも。
> その時帰ってくるのはコンテンツとしては200、ただしHTML/JSが表示するのは存在しないというエラーになるだろうが。

サーバーにリクエスト投げてデータが無いなら404を返せよ。アホかw

サーバー側の実装がクソだから200になるんだろ
>>834はそれをやめたいって話だろ
(なんでやめたいかの話でSEOに脱線したわけだが)

0958デフォルトの名無しさん2018/02/18(日) 16:00:36.45ID:AYB00j0e
違うよ。

SPAだと、example.com/
以下はHTTPで返すものは同じコンテンツを返して当然だと言ってるの。
例外はexample.com/api/xxxxみたいなAPIのURL。 
その後についてくるfoo/1というのは、アプリケーションに対するパラメータであって、HTTPサーバがハンドリングする「ための」ものではない、と。

example.com/history/2017
というURIは、historyの2017分、というSPAへのパラメータであって、それが存在するかどうかはHTTPサーバは知りようが無い。
というか、historyが存在するかどうかも関係ない。

アプリケーションは、history/2017というルートから、適切なコントロールとapiで、ログイン認証したり、履歴ページを表示したり、そこに、ログインユーザ(またはpuiblicな)の2017年分のデータをapiから取得して並べたりする。
apiのレスポンスとして404もわかるが、その404は200データなしとは異なるよね、ってのが前半に言ってた事で。

200になってしまう、と言うのは話がおかしくて、200で当然だが、なんだよ。
レスポンスを404にしたいんじゃなくて、404というレスポンスの値に相当する表示を表現するにはどうしたら良いか、の話だろ。

0959デフォルトの名無しさん2018/02/18(日) 16:01:57.46ID:F2O3xW/S
> SPAだと、example.com/
> 以下はHTTPで返すものは同じコンテンツを返して当然だと言ってるの。

ほんと呆れる。クライアントのことなんかなんけいないって言ってるのに
まーだクライアントがSPAで動いているとーとか言ってやがる

0960デフォルトの名無しさん2018/02/18(日) 16:02:58.40ID:AYB00j0e
>>957
違う。お前は本当に馬鹿なんだと思う。
そして、データなしは404とは違う。404は未検出、だ。データなしは200の空レスポンスとは相当意味合いが違う。

0961デフォルトの名無しさん2018/02/18(日) 16:03:47.16ID:AYB00j0e
>>959
お前は本当に議論が出来ないやつだな。

0962デフォルトの名無しさん2018/02/18(日) 16:04:48.58ID:F2O3xW/S
> 一切アクセスをしないと言えど、リロード時にはリクエストは飛ぶからな。
自分でリロードした時にサーバーにリクエスト飛ぶと言ってるくせにw

> その後についてくるfoo/1というのは、アプリケーションに対するパラメータであって、HTTPサーバがハンドリングする「ための」ものではない、と。
HTTPサーバーがハンドリングするだろ。その時に404返せって
言ってるのにこいつは理解しない



お前の作ったクソSPAは200を返すんだって何度も繰り返し言わなくてもわかってるわ
それがクソだから修正して404を返すようにしろって話だ。

0963デフォルトの名無しさん2018/02/18(日) 16:05:01.09ID:AYB00j0e
>SPAを作る時にページが存在しない場合にをどうやって404を返せばいいんでしょうか?
なんだから、SPAの話をして当然だろ。

SPAよくわかんないから旧石器時代の話します、とかもう間抜けすぎるからやめて。

0964デフォルトの名無しさん2018/02/18(日) 16:08:10.52ID:AYB00j0e
>>962
違うよね。
HTTPサーバは関与できない。
その処理はクライアントの実装次第で、サーバ側の処理としては存在しないから。
その二重管理は間違ってるし、ユーザしか知り得ない情報をサーバに持ち込むのは全く持って意味が無いというかデメリットしかない。
ユーザしか知り得ないことを正しく知らないのは大切。
だから、HTTPサーバは、pathinfoでなりなんなり、好きな方法で良いが、静的なコンテンツを吐く。

そもそもお前は404の意味もちょっと間違ってる。

0965デフォルトの名無しさん2018/02/18(日) 16:09:10.37ID:F2O3xW/S
>>960
> そして、データなしは404とは違う。404は未検出、だ。データなしは200の空レスポンスとは相当意味合いが違う。

リソースとして考えろ、中の実装は忘れろ。

URI、例えば http://example.com/foo/1 というURIで示したい
リソースをNot Foundとしたいなら404だ。

http://example.com/foo/1 を表示した時、周りに広告やらカテゴリやら
いろんなデータがついてることよくあるよな? 例えそんなのがあったとしても

http://example.com/foo/1 というURIで示したいリソース」がないなら404にするんだよ
SPAのhtml/jsがあったからって200にするな

抽象化して物事を考えられないのか
基準は「http://example.com/foo/1 というURIで示したいリソース」だ
まわりの関係ないもので判断するんじゃねーよ

0966デフォルトの名無しさん2018/02/18(日) 16:10:19.39ID:AYB00j0e
>>962
そもそも、ページ(正確にはSPAの画面)は存在するんだよ。
そして、画面は一つのリソースから構成されてるわけじゃないんだから。
200で画面出して、集まったデータ分表示するのはまっとうでしょ。
そこで、APIが200のデータなしではなく404返したなら、完全なるエラー画面に飛ばす必要があるかもしれんが。

0967デフォルトの名無しさん2018/02/18(日) 16:11:12.18ID:F2O3xW/S
>>963
お前、質問者が
HTMLを作る時にページが存在しない場合にをどうやって404を返せばいいんでしょうか?
っていったら、HTMLの話すんのか?

404を返すのはHTTPサーバー(or ウェブアプリ)なんだから、
質問者が関係ないものを持ち出してきたものとして、HTMLの話ではなく
HTTPサーバー(or ウェブアプリ)の話をするだろ

0968デフォルトの名無しさん2018/02/18(日) 16:13:01.23ID:F2O3xW/S
>>966
画面が存在するのと404を返すのは別の話

カスタム404ページとか調べてこい
画面は存在するが、404を返している。

そして忘れんなよ? HTTPステータスコードは
HTTPプロトコルで、サーバーにアクセスした時に
サーバーから返す時に使うものだ

0969デフォルトの名無しさん2018/02/18(日) 16:14:21.22ID:AYB00j0e
>>965
リソースとして考えて、空と、見つからない、は断じて違うもの。

実装論だと、apiの互換性がなくなって旧ver消したなら、APIが見つからない、404。
apiはあってて、処理も正しく行われて、データなかったよ、は404とは限らない。
なら、APIが見つからないと切り分ける必要あるよね。

抽象化すると、
あるものは200
見つからないものは404
あったけど中身入ってないよ、は200
探し方が悪い、は400
お前には見せられない、は403
名乗れ、は401
サーバとして答えられん、は500系。

お前が抽象化できてないよ。
完全な実装論じゃん、

0970デフォルトの名無しさん2018/02/18(日) 16:14:32.94ID:AYB00j0e
>>967
そうだよ。

0971デフォルトの名無しさん2018/02/18(日) 16:15:04.37ID:AYB00j0e
>>968
それも知ってるよ。知ってるからこういう話してるんだよ。

お前が言ってるリソースは、全部旧石器時代の話。

0972デフォルトの名無しさん2018/02/18(日) 16:18:20.71ID:AYB00j0e
>>967
このどうやって404を、ってのは、存在しないものをどうやったら手に入れられるか、って話であって、
たとえ話に近いだろ。
そこに、いや、ajaxが、とかアスペのようにHTTPサーバについて一所懸命に勉強したつたない知識で騒がないで。

0973デフォルトの名無しさん2018/02/18(日) 16:21:22.10ID:F2O3xW/S
「URIが指し示すリソース」っていうのが分からんのかもなw

例えば以下の適当なページは404を返してくる
https://support.google.com/websearch/answer/dsfasdfasdfa

だが、画面上は検索ボックスやGoogleアプリのリンクや
ログイン状態といった「リソース」が表示されてる

>>966の馬鹿げた理屈では
> そして、画面は一つのリソースから構成されてるわけじゃないんだから。
> 200で画面出して、集まったデータ分表示するのはまっとうでしょ。

この適当なページにたいして>>966では200を出すのがまっとうだと言っているが
見ての通り、googleはそんなことはしていない。

なぜなら「URIが指し示すリソース」というのは(これはヘルプなので)
ペルプの1ページのことで、まわりにあるごちゃごちゃしたリソースのことではないから
もちろんこの周りにあるごちゃごちゃしたリソースにSPAのシステムも含まれる

画面が出るから200とかアホすぎw SPAだから200にするんだとかアホすぎw
200にするか404にするかは「URIが指し示すリソース」の存在の有無が基準だ

0974デフォルトの名無しさん2018/02/18(日) 16:25:01.50ID:AYB00j0e
>>973
違うよ。

0975デフォルトの名無しさん2018/02/18(日) 16:25:54.86ID:F2O3xW/S
>>974
反論しろよw

0976デフォルトの名無しさん2018/02/18(日) 16:29:10.66ID:AYB00j0e
例示するとこれとかかな。
https://www.google.com/maps/search/aaaaaaasa/
200、該当する場所無しでアプリ開くよね。
お前の理屈ガッバガバ。

0977デフォルトの名無しさん2018/02/18(日) 16:29:38.60ID:AYB00j0e
ああ、アプリ→Webアプリ、な。

0978デフォルトの名無しさん2018/02/18(日) 16:32:27.92ID:AYB00j0e
一つの画面が一つのリソースからできてるわけでないってのもわかるか。
画面を動かすとアドレスが変わるけど、リロードしてもSSRしていないリソースはそのまま落ちてくるのもわかるな。

0979デフォルトの名無しさん2018/02/18(日) 16:32:29.01ID:F2O3xW/S
例示するとこれかな?

例えば以下の適当なページは404を返してくる
https://support.google.com/websearch/answer/dsfasdfasdfa

お前の理屈ガッバガバw

0980デフォルトの名無しさん2018/02/18(日) 16:33:48.38ID:F2O3xW/S
おかしいな?
https://www.google.com/maps/searcha/aaaaaaasa/
だと404になるが?w

0981デフォルトの名無しさん2018/02/18(日) 16:33:52.75ID:AYB00j0e
>>979
そっちはWebページ、俺が挙げたのはSPA。
だから、おまえは旧石器時代の人間で、Webページからはなれて考えろって俺が言ってるの。

0982デフォルトの名無しさん2018/02/18(日) 16:35:12.53ID:AYB00j0e
SPAでも同じ話だろ、って言いたいんだろうが、全然違うことがわかったよな。

技術についてこれねえやつは発言しないでくれるかな。
COBOLでは〇〇だった、とかドヤってくる無能そっくりなんだわ。

0983デフォルトの名無しさん2018/02/18(日) 16:35:57.85ID:F2O3xW/S
あ、なるほど、こいつURIリソースが見つからないのと
検索結果が見つからないをごっちゃにしてるのかw

0984デフォルトの名無しさん2018/02/18(日) 16:37:11.71ID:AYB00j0e
>>983
違うよ。
中でAPI呼んでるでしょ。
そのレスポンス見てみ?

これ以上間抜けさらさんと謝ればどうだ?

0985デフォルトの名無しさん2018/02/18(日) 16:37:25.16ID:F2O3xW/S
>>981
> そっちはWebページ、俺が挙げたのはSPA。

SPAで404が返ってこないものを出して
200が返ってきましたーって意味ねーだろw

SPAを使って404を返してくるものをもってこいって。
画面に地図表示されて明らかに404じゃないのに
404でてないとかいわれてもな(苦笑

0986デフォルトの名無しさん2018/02/18(日) 16:37:46.52ID:F2O3xW/S
>>984
APIレスポンスの中で404になるべきものってどれですか?

0987デフォルトの名無しさん2018/02/18(日) 16:38:11.19ID:AYB00j0e
だからURIとURLを区別してたのに、アホなのかな。

0988デフォルトの名無しさん2018/02/18(日) 16:39:19.18ID:WV1p31YW
>>985
だから、帰ってこないものなんだよ。
そう言ってんじゃん。

今回のアドレスも、404に相当するsnack出てるよねw

0989デフォルトの名無しさん2018/02/18(日) 16:39:49.25ID:WV1p31YW
>>986
自分で考えてみたらどうだ?

0990デフォルトの名無しさん2018/02/18(日) 16:40:36.85ID:WV1p31YW
あ、toastで出てるわ。snackじゃなかった。

0991デフォルトの名無しさん2018/02/18(日) 16:41:39.82ID:F2O3xW/S
>>988
> だから、帰ってこないものなんだよ。
> そう言ってんじゃん。

SPAはすべて200を返すものって言いたいのかな?w

0992デフォルトの名無しさん2018/02/18(日) 16:43:00.60ID:WV1p31YW
実在するもの叩いたら、今回出てるのtoastわかると思うんだがな。

>>980
そうだよ。だからURIなの。httpとhttpsは違うものでしょw
Androidで見たら、前者叩いたらマップが開くんだよ。

0993デフォルトの名無しさん2018/02/18(日) 16:43:14.95ID:WV1p31YW
>>991
全てじゃないよ。

0994デフォルトの名無しさん2018/02/18(日) 16:44:15.64ID:F2O3xW/S
よし、じゃあSPAで404を返す例な


https://twitter.com/abcasdfadsfadsfasdfasdf

0995デフォルトの名無しさん2018/02/18(日) 16:45:06.21ID:WV1p31YW
>>994
自分でわかってるだろうが、違うよねww

0996デフォルトの名無しさん2018/02/18(日) 16:45:27.99ID:F2O3xW/S
>>993
だから質問者はSPAで404を返すにはどうするかって話をしてるんだろ。
全てじゃないというのならやり方があるわけで、
そのやり方を聞いているんだろ
何が言いたいんだおまえは。

0997デフォルトの名無しさん2018/02/18(日) 16:45:58.61ID:WV1p31YW
逆に「サーバしか知らない事」はクライアントで判断出来るわけねえじゃんw

0998デフォルトの名無しさん2018/02/18(日) 16:46:44.20ID:WV1p31YW
>>996
お前みたいにHTTPのレスポンスコードに依存してると一生わからん話だ。
ききわけろw

0999デフォルトの名無しさん2018/02/18(日) 16:47:33.18ID:WV1p31YW
何が言いたいんだと言ってるやつが一番わかってないだけの大舞踏会のおしまいw

1000デフォルトの名無しさん2018/02/18(日) 16:48:40.48ID:WV1p31YW
ほんと、化石は化石として生きればいいのに。

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1064日 0時間 28分 55秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。