質問するログイン新規登録

回答編集履歴

1

コメントを受けての追記

2019/07/25 13:51

投稿

otn
otn

スコア86427

answer CHANGED
@@ -2,4 +2,37 @@
2
2
  今回は50000です。
3
3
 
4
4
  勘違いがあるようです。`open`で指定するのはサーバー側のポート番号です。
5
- クライアント側のポート番号は、空いている番号から適当に割り当てされます。
5
+ クライアント側のポート番号は、空いている番号から適当に割り当てされます。
6
+
7
+ #追記
8
+ 動くように書き換えると、こうです。
9
+ ・`(CR+LF)`を全部削除
10
+ ・行頭の空白を削除
11
+ ・最後に空行を追加
12
+
13
+ ```Ruby
14
+ require 'socket'
15
+ post = TCPSocket.open("www.metro.tokyo.jp",80)
16
+
17
+ post.write('GET / HTTP/1.1
18
+ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
19
+ Accept-Encoding: gzip, deflate
20
+ Accept-Language: ja,en-US;q=0.9,en;q=0.8
21
+ Cache-Control: max-age=0
22
+ Connection: keep-alive
23
+ Host: www.metro.tokyo.jp
24
+ If-Modified-Since: Thu, 25 Jul 2019 08:36:32 GMT
25
+ Referer: https://www.google.com/
26
+ Upgrade-Insecure-Requests: 1
27
+ User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36
28
+
29
+ ')
30
+
31
+ while a = post.gets
32
+ puts a
33
+ end
34
+
35
+ post.close
36
+ ```
37
+ `If-Modified-Since: Thu, 25 Jul 2019 08:36:32 GMT`
38
+ が付いているので、「その日時以降、変わってないよ」という`HTTP/1.0 304 Not Modified`が返ってきます。