Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

design a new web protocol

Name: Anonymous 2015-02-16 14:21

using UDP
field description [size] {example}

Requests:
Request ID [2] {1234}
Request string [] {prog+bbs}


Response:
Request ID [2] {1234}
Data type [1] {0 = plain text}
Data [max 1440] {hello world!}


it lacks a way to prevent spoofed source IPs and allow larger data sizes

Name: L. A. Calculus !jYCj6s4P.g 2015-02-18 0:50

Format:
[ Message Type ] [ Message Data ... ]

MESSAGE TYPE IS EIDER 1 OR 2 N IT CORRESPONDS TO DA FOLLOWING MESSAGE TYPES.

Type 1:
Octet [ 0 ][ 1 ][ 2 ][ 3 ]
0 [ Page Identifier ]
4 [ Block Count ]
8 [ URI ... ]

DIS MESSAGE IS SENT BY DA FUKIN CLIENT. PAGE IDENTIFIER N BLOCK COUNT CAN SET
TO ANYTHING. DA SERVER WILL SEND DIS MESSAGE BACK TO DA CLIENT WITH URI
UNMODIFIED N PAGE ID + BLOCK COUNT FILLED IN.

PAGES R (PREFERABLY) ENUMERATED BY DA SERVER FROM 1 TO <NUMBER OF PAGES HANDLED
BY DA SERVER>. PAGE IDENTIFIER 0 INDICATES DAT DA URI SENT BY DA CLIENT DOESN'T
REFER 2 A VALID PAGE.

BLOCK COUNT IS DA NUMBER OF MESSAGES U NEED TO RECEIVE TO GET DA WHOLE PAGE. DIS
BRINGS US TO DA SECOND MESSAGE TYPE.

Type 2:
Octet [ 0 ][ 1 ][ 2 ][ 3 ]
0 [ Page Identifier ]
4 [ Block Identifier ]
8 [ Block Data ... ]

SAME AS B4. CLIENT SENDS DIS PACKET FIRST, WITH PAGE IDENTIFIER AND BLOCK
IDENTIFIER FILLED IN. BLOCK DATA IS OMITTED BY DA CLIENT.

SERVER SENDS DA SAME SHIT BACK, EXCEPT WITH DA BLOCK DATA APPENDED TO DA PACKET.

DA SIZE OF EACH BLOCK IS BASED ON UR MAXIMUM UDP DATA SIZE. IF DAT'S 512, UR
BLOCKS R 512 - 1 - 4 - 4. THEREFORE U COMPUTE DA BLOCK COUNT FOR A PAGE BY

page_size / block_size + (page_size % block_size != 0)

N DER'S UR FUCKIN GET REQUESTS. ALL DA SERVER HAS TO DO IS RESPOND TO TWO KINDS
OF PACKETS, NO STATE NEEDED. HERES A SAMPLE COMMUNICATION:

client: "\1\0\0\0\0\0\0\0\0/non-existent.html"
server: "\1\0\0\0\0\0\0\0\0/non-existent.html"
client: "\1\0\0\0\0\0\0\0\0/index.html"
server: "\1\0\0\0\1\0\0\0\3/index.html"
client: "\2\0\0\0\1\0\0\0\0"
server: "\2\0\0\0\1\0\0\0\0<html>\n <head>\n ..."
client: "\2\0\0\0\1\0\0\0\1"
server: "\2\0\0\0\1\0\0\0\1 id='blahblah'>\n ..."
client: "\2\0\0\0\1\0\0\0\2"
server: "\2\0\0\0\1\0\0\0\2</body>\n</html>"

SO BASICALLY DA CLIENT SENDS A TYPE 1 PACKET. IT WAITS 2 SECONDS, IF IT HASNT
RECEIVED A RESPONSE IT TRIES A FEW MORE TIMES THEN QUITS SAYIN IT CANT REACH DA
SERVER. IF DA SERVER RESPONDS N PAGE ID IS 0, IT QUITS SAYIN DA PAGE DONT EXIST.
IF DA SERVER RESPONDS WITH PAGE ID > 0, IT DOWNLOADS DA PARTS IN ORDER (1 BY 1),
N WRITES EACH PART 2 ITS OUTPUT.

NOW DATS A DECENT PROTOCOL. NO UNNECESSARY BULLSHIT. IF U WANT TO SUPPORT MIME
TYPES, JUST PREPEND DEM TO DA PAGE DATA, SO U GET "text/plain\nblahblah ...".

Name: L. A. Calculus !jYCj6s4P.g 2015-02-18 1:01

N YEA, URI CAN BE A FULL URI: www.whatever.com/index.html

BETTER THAN HAVIN DAT STUPID "Host: " SHIT IN DA FUCKIN PROTOCOL. JUST DUMP IT ALL TOGETHER IN 1 STRING N HANDLE DAT.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List