diff --git a/Filter.md b/Filter.md new file mode 100644 index 00000000..20f22149 --- /dev/null +++ b/Filter.md @@ -0,0 +1,27 @@ +# Introduction + +The basic idea of a filter is to pre-process incoming data and post-process outgoing data. +Filters are part of a filter chain, thus following the [chain of responsability design pattern](http://en.wikipedia.org/wiki/Chain-of-responsibility_pattern). + +Each filter decides to call the next filter or not. + +# Levels + +In EWF, there are two levels of filters. + +## WSF_FILTER + +Typical examples of such filters are: logging, compression, routing (WSF_ROUTING_FILTER), ... + +## WSF_FILTER_HANDLER + +Handler that can also play the role of a filter. + +Typical examples of such filters are: authentication, ... + +# References + +Filters (also called middelwares) in other environments: +* in Python: http://www.wsgi.org/en/latest/libraries.html +* in Node.js: http://expressjs.com/guide.html#middleware +* in Apache: http://httpd.apache.org/docs/2.2/en/filter.html \ No newline at end of file