2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

+ JavaScript の質問用スレッド vol.124 +

1 :デフォルトの名無しさん:2015/03/22(日) 16:19:45.75 ID:nW67tQ7U.net
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です)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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というレスポンスの値に相当する表示を表現するにはどうしたら良いか、の話だろ。

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

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

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

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

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

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



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

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

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

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

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

970 :デフォルトの名無しさん:2018/02/18(日) 16:09:10.37 ID:F2O3xW/S.net
>>965
> そして、データなしは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で示したいリソース」だ
まわりの関係ないもので判断するんじゃねーよ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

お前の理屈ガッバガバw

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


https://twitter.com/abcasdfadsfadsfasdfasdf

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

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

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

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

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

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

1006 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1006
375 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★