|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectthings.data.processing.LexicalTool
things.data.processing.http.RequestLineParserOLD
public class RequestLineParserOLD
An HTTP Request Line parser. Uses the same method as the AddressParser.
Version History
EPG - Initial - 12 FEB 07
Field Summary |
---|
Constructor Summary | |
---|---|
RequestLineParserOLD()
|
Method Summary | |
---|---|
static void |
parseAndSave(StreamSource source,
HttpRequest request)
Parse the source as an HTTP request. |
void |
parser(java.io.InputStream ins,
HttpRequest request)
Call with an InputStream. |
void |
parser(StreamSource source,
HttpRequest request)
Parse engine grammar. |
void |
parser(java.lang.String data,
HttpRequest request)
Call with a String. |
Methods inherited from class things.data.processing.LexicalTool |
---|
get822HeadernameType, get822HeadernameTypeWithDollar, get822Type, getClassification, getDNSType, getHexValue, getLower, getName, getUpper, getURIType, getURLFType |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public RequestLineParserOLD()
Method Detail |
---|
public static void parseAndSave(StreamSource source, HttpRequest request) throws ThingsException
source
- the source data.request
- put values into this object.
ThingsException
- If it is a fault, the request should be considered completely invalid. If it is an error, whatever was set in the request might be useful.public void parser(StreamSource source, HttpRequest request) throws ThingsException
Lexical elements: URLCHAR = Letters (A-Z and a-z), numbers (0-9) and the characters '.', '-', '~' and '_', plus we treat # as a character because we don't distinguish is for processing. !OTHER! (meaning anything not listed). PERCENT = % SPLAT = * FSLASH = / PLUS = + QUEST = ? AMP = & EQU = = Registers Method - request.method Server - request.server Path - request.path (Hex)Sixteens Flags DoneURI GEThttp://www.yahoo.com/monkey%20head/?l=1207011680%20monke HTTP-Version method [START] -> NULL->$Method -> NULL->$Server -> NULL->$Path -> NULL->$Version -> NULL->$(Hex)Sixteens -> FALSE->!DoneURI -> [OPEN] -> ^RETURN^ [OPEN] - URLCHAR - push, METHOD, ^RETURN^ - !OTHER! - [DEPLETE], error(must start with a character) - !EOF! - fault(No request present) [METHOD] - URLCHAR - push - PERCENT - [ESCAPE] - WS - pop->$Method, [POSTMETHOD], ^RETURN^ - CR | LF - error(terminated after METHOD) - !OTHER! - [DEPLETE], error(expecting method) - !EOF! - fault(Only METHOD present) [POSTMETHOD] - WS - burn - SPLAT - ""->$Server, ->$Path, [STAR], ^RETURN^ - FSLASH - ""->$Server, push, [PATH], ^RETURN^ - URLCHAR - push, [SERVER], ^RETURN^ - PERCENT - [ESCAPE] - QUEST - [DEPLETE], error(expecteding PATH before URI) - CR | LF - [DRAIN], error(terminated before URI) - !OTHER! - [DEPLETE], error(bad characters) - !EOF! - error(No URI present) [STAR] - WS - burn, [POSTSTAR], ^RETURN^ - CR | LF - [DRAIN], error(terminated without version)) - !OTHER! - [DEPLETE], error(excess characters after SPLAT) - !EOF! - error(No URI present) [POSTSTAR] - WS - burn - CR | LF - [DRAIN], error(terminated without version)) - URLCHAR - push, [VERSION], ^RETURN^ - !OTHER! - [DEPLETE], error(bad characters) - !EOF! - error(No Version present) [SERVER] - PERCENT - [ESCAPE] - WS - pop->$Server, ""->$Path, [VERSION], ^RETURN^ - FSLASH - pop->$Server, push, [PATH], ^RETURN^ - QUEST - [DEPLETE], error(expecteding PATH before URI query) - URLCHAR - push - CR | LF - [DRAIN], error(terminated before finishing URI) - !OTHER! - [DEPLETE], error(bad characters) - !EOF! - error(No compelted URI) [PATH] - PERCENT - [ESCAPE] - URLCHAR - push - FSLASH - push - AMP - push - PLUS - push(" ") - WS - pop->$Path, [VERSION], ^RETURN^ - QUEST - pop->$Path, [START_URI], ^RETURN^ - CR | LF - [DRAIN], error(terminated without version) - !OTHER! - [DEPLETE], error(bad characters in path) - !EOF! - error(No completed URI) [START_URI] - PERCENT - [ESCAPE], [NAME] - URLCHAR - push, [NAME], if(!DoneURL==TRUE) ^RETURN^ - PLUS - push(" "), [NAME], if(!DoneURL==TRUE) ^RETURN^ - WS - [POST_URI], ^RETURN^ - CR | LF - [DRAIN], error(terminated without version) - !OTHER! - [DEPLETE], error(bad characters in URI) - !EOF! - error(No completed URI) [NAME] - PERCENT - [ESCAPE] - WS - [DEPLETE], error(broken name in URI) - URLCHAR - push - SPECIAL_SLASH - push("/"); - PLUS - push(" ") - EQU - pop->$Name, [START_VALUE], ^RETURN^ - CR | LF - [DRAIN], error(terminated without completing query name) - !OTHER! - [DEPLETE], error(bad characters in URI query name) - !EOF! - error(Truncated URI) [START_VALUE] - PERCENT - [ESCAPE], [VALUE], ^RETURN^ - WS - [DEPLETE], error(broken value in URI) - URLCHAR - push, [VALUE], ^RETURN^ - SPECIAL_SLASH - push("/"), [VALUE], ^RETURN^; - PLUS - push(" "), [VALUE], ^RETURN^ - CR | LF - [DRAIN], error(terminated completing name/value) - !OTHER! - [DEPLETE], error(bad characters when starting value in URI) - !EOF! - error(Truncated URI missing value for query item.) [VALUE] - PERCENT - [ESCAPE] - URLCHAR - push - SPECIAL_SLASH - push("/") - PLUS - push(" ") - WS - TRUE->!DoneURI, [SETNV], ^RETURN^ - AMP - [SETNV], ^RETURN^ - CR | LF - [DRAIN], error(terminated while completing query value) - !OTHER! - [DEPLETE], error(bad characters for value in URI) - !EOF! - error(Truncated URI) [SETNV] -> pop->$Value -> (Set request NV to $Name/$Value -> ^RETURN^ [POST_URI] - WS - burn - URLCHAR - push, [VERSION], ^RETURN^ - SPECIAL_SLASH - push("/") , ^RETURN^ - CR | LF - [DRAIN], error(terminated without completing VERSION) - !OTHER! - [DEPLETE], error(bad character starting VERSION) - !EOF! - error(No version present.) [VERSION] - URLCHAR - push - FSLASH - push - CR | LF - [DRAIN], pop->$Version, ^RETURN^ - WS - [DEPLETE], error(spaces after VERSION) - !OTHER! - [DEPLETE], error(bad character in VERSION) - !EOF! - error(Truncated VERSION.) [ESCAPE] - HEX - ->$Sixteens, ESCAPEONES, ^RETURN^ - !OTHER! - error(broken escape) - !EOF! - error(Truncated line with dangling escape.) [ESCAPEONES] - HEX - push( ($SixteensSPLAT16)PLUSHEX ), ^RETURN^ - !OTHER! - error(broken escape) - !EOF! - error(Truncated line with dangling escape.) [DEPLETE] - CR - [DEPLETE_CR], ^RETURN^ - !OTHER! - burn - !EOF! - error(missing CR at end of line) [DEPLETE_CR] - LF - ^RETURN^ - !EOF! - error(missing LF after CR at end of line: truncated.) - !OTHER! - fault(missing LF after CR at end of line: odd characters found, so stream is unreliable.) [DRAIN] - LF - burn, ^RETURN^ - CR - burn, ^RETURN^ - !EOF! - error(bad CR/LF line termination: truncated.) - !OTHER! - fault(bad CR/LF line termination: odd characters found, so stream is unreliable.)
source
- the stream source.request
- the request object to fill.
ThingsException
- If it is a fault, the request should be considered completely invalid. If it is an error, whatever was set in the request might be useful.public void parser(java.io.InputStream ins, HttpRequest request) throws ThingsException
ins
- the source stream.request
- the request object to fill.
ThingsException
- If it is a fault, the request should be considered completely invalid. If it is an error, whatever was set in the request might be useful.public void parser(java.lang.String data, HttpRequest request) throws ThingsException
data
- the Stringrequest
- the request object to fill.
ThingsException
- If it is a fault, the request should be considered completely invalid. If it is an error, whatever was set in the request might be useful.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |