Methods and apparatus which facilitate the handling of data between platforms
interconnected by any of a variety of network environments are disclosed. In general
terms, the present invention represents an improvement over conventional packet
parsing and searching mechanisms. The parse mechanism sequentially analyzes each
character of the packet data and passes relevant characters to the search mechanism
as soon as each character is reached. Preferably, the characters of each data field
are parsed character-by-character. In one implementation, prior to searching a
relevant data field, the parser initializes the appropriate search mechanism based
on at least the data field type (e.g., the cookie field or URL field of an HTTP
request). Each character of the relevant data is then passed sequentially to the
search mechanism, where a search state are obtained for each passed character.
Accordingly, the parser passes each character of the relevant data fields to the
search mechanism. Since the parser passes the well-defined fields of standard protocols,
such as HTTP and FTP, parsing may be efficiently performed without referencing
memory (e.g., parsing is implemented in micro-code). When the parser reaches the
end of the relevant data field, the parser may then cause the search mechanism
to output search results associated with the search state of the last searched
character. Alternatively, the parser may initiate another search for another data
field, which is subsequently parsed and searched character-by-character as recited
above for the first field.