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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

3234閲覧

JavaでFormのPOST送信をした際、取得したメッセージの前後についてくる謎の数字の意味

risaito74

総合スコア44

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/11/04 15:29

以下のjavaプログラムでFormのPOST送信処理を行っています。

java

1import java.net.*; 2import java.io.*; 3 4public class Main { 5 public static void main(String[] args) throws IOException { 6 String host = "rsaito.sakura.ne.jp"; 7 String path = "/php/postres2.php"; 8 String param = "mes=hoge"; 9 int port = 80; 10 11 String line; 12 Socket socket; 13 BufferedReader reader; 14 BufferedWriter writer; 15 16 socket = new Socket(host, port); 17 reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); 18 writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); 19 writer.write("POST " + path + " HTTP/1.1\r\n"); 20 writer.write("Host: " + host + "\r\n"); 21 writer.write("Content-type: application/x-www-form-urlencoded\r\n"); 22 writer.write("Content-length: " + param.getBytes().length + "\r\n\r\n"); 23 writer.write(param + "\r\n"); 24 writer.flush(); 25 26 while ((line = reader.readLine()) != null) { 27 System.out.println(line); 28 } 29 30 reader.close(); 31 writer.close(); 32 socket.close(); 33 } 34}

受信側のpostres2.phpは以下の通りです。

PHP

1<?php 2$mes = $_POST["mes"]; 3if ($mes === "hoge") { 4 echo "mes is hoge : OK!"; 5} else { 6 echo "mes is not hoge : NG!"; 7} 8?>

実行結果は"mes is hoge : OK!"が返ってきますが、実際の出力結果は以下の様になります。


HTTP/1.1 200 OK
Date: Fri, 04 Nov 2016 15:14:11 GMT
Server: Apache/2.2.31
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

11
mes is hoge : OK!
0


冒頭のヘッダー情報?はまだなんとなく意味がわかりますが、"mes is hoge : OK!"の前後にある数字"11","0"は、いったい何なのでしょうか?
よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

WebサーバーとクライアントはHTTPプロトコルの規定に従い会話(送受信)の内容を解釈します。通常ならHTTPプロトコルを解釈してくれるようなクラスを用いて会話することが多いと思いますが質問者さんが使っておられるのはTCP/IPレイヤーの生のデータを直接送受信するクラスなのでHTTPの送受信データが見えているのです。

この内容を知りたい場合はHTTPプロトコルの仕様をご覧ください。おおもとの仕様書はRFCですが、「HTTPプロトコル」などのキーワードで検索すればRFCよりもやわらかく解説しているページがみつかります。

投稿2016/11/04 17:01

KSwordOfHaste

総合スコア18394

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

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

risaito74

2016/11/04 23:20

ありがとうございます! 先日までJavaの基礎勉強をしていた初学者ですが、通信回りをやるためにはHTTPプロトコルやTCP/IPについての勉強も必要だと再認識できました。さっそく調べてみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問