>>2.cgiプロトコル仕様書 ver1.24<< このドキュメントは、2.cgi<->iMona間のプロトコルの仕様書です。 記憶とソースから仕様書を起こしていますので何らかの間違いなどがあるかもしれません。 間違い、不明な点などがありましたらスレッド、メールなどで教えて頂ければ幸いです。 この仕様書を使用して、サーバに負荷を加えるいたずらや 無断でiMona以外の用途に使用したりはしないでください。 バージョンDは暫定仕様です。今後、細かな変更や追加などが行われる可能性があります。 ■2.cgiの呼び出し方法 get,postの両方を使用することができます。 getの場合 http://imona.net/2.cgi?v=D&m=m&b=0&t=1234567890&c=s1t20 というようにして呼び出します。 postの場合は、?の後、つまり v=D&m=m&b=0&t=1234567890&c=s1t20 の部分を送信してください。 この場合の意味は以下の項目を参照してください。 ■呼び出しオプション  ・v 意味:データ出力形式のバージョンを指定 値:1 2 3 4 5 6 7 8 9 A B C D 注意:  このドキュメントではそれぞれの値による違いは省略し、iMona 0.74.xで使用されているバージョンCおよび  バグを修正した、iMona 0.75で使用予定のバージョンDのみの解説となります。  全てのコマンドにはバージョンの指定が必要です。  ・m 意味:動作モードを設定 値:b t m s u w src me ver 値の意味:  b 板一覧の読み込み(省略可)  t スレッド一覧の読み込み(省略可)  m スレッドの読み込み(省略可)  s スレッドの検索  u URLを指定して読み込み  U 板番号から板のURLを取得  w 書き込み画面の出力(html)or2chの書き込み画面にリダイレクト(サーバの設定に依存)  src 2.cgiのソースを出力(アプリからは利用しません)  me iMona v0.52用の文字列リソースを出力(現在は使用しません)  ver 2.cgiのバージョンを出力します 注意:  b t mは省略してもその他のデータ(b=〜,t=〜)によって補完されます。  ・p 意味:オプション 値:i t m n a u r x p d g z s h f 値の意味:  i IDを消去  t 時刻を消去  m メールを消去  n 名前を消去  a AAを消去(現在は不完全)  u URLを消去  r 透明削除が行われていたとき(指定したレスよりも全レスの方が若い場合、最新レスを取得する)  x iMona独自形式での圧縮はしない  p iMona独自形式での圧縮方法 p0:非可逆圧縮+可逆圧縮(pオプションを指定しないのと同じ) p1:非可逆圧縮のみ p2:可逆圧縮のみ p3:圧縮しない(xオプションを指定したのと同じ)  d deflate圧縮 d1〜d9:圧縮率(1:圧縮時間を最短にする、9:圧縮率を最高にする) dのみで、圧縮率の指定がない時は6になります。但し、サーバーの設定により、圧縮率の設定が無効になる場合があります。 圧縮するよう指定されていても、fオプションが指定されていなくて、圧縮後に容量が増えている場合は圧縮を行いません。 この区別のため、fオプションが指定されていない場合は、 圧縮が行われたときは全ての出力の前に0x01が送信され、行われなかったときは0x02が送信されます。 そしてこの後、圧縮されたデータが続きます。  g gzip圧縮 g1〜g9:圧縮率(1:圧縮時間を最短にする、9:圧縮率を最高にする) 詳細はdeflate圧縮の項目を参照してください。  z zip圧縮 z1〜z9:圧縮率(1:圧縮時間を最短にする、9:圧縮率を最高にする ) 詳細はdeflate圧縮の項目を参照してください。 s deflate,gzip,zip圧縮した際、圧縮後のデータサイズも出力する deflate,gzip,zip圧縮が行われた際、0x01の次に240進数で圧縮後のデータサイズを出力し、0x0Aを出力します。  h gzip圧縮の場合、ヘッダ(0x1F, 0x8B, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03)を省きます。 これはzip圧縮の時は行われません。 f データ容量にかかわらず必ずdeflate,gzip,zip圧縮を行う(圧縮したかどうかのフラグ(0x01,0x02)は出力しません)。 注意:  p又はxを指定しないとデフォルトで非可逆圧縮+可逆圧縮がかかります。圧縮の詳細は、圧縮についてを参照してください。  複数のオプションを指定する場合は並べて書きます。例えばi,t,m,n,p2を指定する場合は、  p=itmnp2と書きます(順序は問いません)。  また、圧縮しない設定にした場合でも以降に記述する数字の240進数化は行われます。  ・b 意味:板番号 注意:  板番号とは、iMonaでそれぞれの板に勝手に割り当てた番号のことです。  URLを直接介さないことでパケット代を節約する目的で導入されています。  ・t 意味:スレッド番号 注意:  スレッド番号とは2chで使用されているスレがたったときの日付です。  iMonaのスレッド http://pc2.2ch.net/test/read.cgi/software/1055411823/  なら1055411823に当たる部分です。  ・c 意味:読む範囲の指定 書式:sXXXtYYY 又は lZZZ  sXXXtYYYは、XXXからYYYの範囲のスレッド一覧又はスレッドの取得を表します。  lZZZは、最新ZZZのスレッド一覧又はスレッドの取得を表します。 注意:  これが省略された場合、サーバではc=s1t10と補完して動作します。  ・w 意味:スレッド検索時のキーワード 注意:  これはm=sと同時に使用します。  ・u 意味:URLを指定して読み込む時のURL 注意:  2ch以外のURLを指定するとエラーが帰ります。 ■出力データのフォーマット  まず、1バイト目が0x00-0x0Fならばエラーとして処理します。 0x00:なんらかのエラー 0x01:読み込もうとしている範囲にレスがない(新しいレスがない) 0x02:iMonaサ