This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Off-code HTTP server pages

Hi all,
I'm using RL-TCPNet HTTP embedded web server for developing a data publishing application. The "site" requires static (htm) and dynamic (cgi) pages, together with resources like images, javascripts and css.

I can successfully deploy the site by compiling-in pages with FCARM and the resulting web.c module.

Project contraints force me to explore a different approach now. I need to strip off the pages from the application code and store them on an external flash device.

I implemented a minimal access to pages stored on flash by redefining the interfaces for http_fopen(), http_fclose() and http_fread() in http_uif.c module and including it in the project (while removing web.c). It seems to work ok for static pages and images, but, as far as I can see, these functions are not called by the http server when client requires a cgi file and this kind of resources are still looked for as statically linked to the code, resulting in a HTTP 404 error to the client.

Is there any configuration I miss to make http server ALWAYS use my file interface functions? If not, does anybody there have an idea how I can keep storing web resources in flash and make the http server access them. At moment RL-FlashFS is preferrably not an option.

TIA
Andrea

Parents
  • Hi Andrea,
    what you have already figured out is correct, HTTP server works this way. All of the web files except cgi scripts may be located in external Flash or SD/MMC memory card.

    Web server checks first the external File System for the file (using the http_uif.c interface). If the file is not found there, the web server checks the internal virtual ROM file system for the file(compiled into the code). And finally if the file still not found, sends HTTP 404 error to the client.

    Because the cgi scripts and the HTTP_CGI.c interface are tightly coupled (the cgi script command has a c-function behind in HTTP_CGI.c module), we have followed the idea that cgi files should not be located on other drives.

    You can not locate cgi files anywhere else but the internal virtual ROM file system. However to reduce the size of the cgi files, you may want to extract the static header and footer into the separate (inc) file, which may be located on external drive. (see the HTTP_Demo example page TCP).

Reply
  • Hi Andrea,
    what you have already figured out is correct, HTTP server works this way. All of the web files except cgi scripts may be located in external Flash or SD/MMC memory card.

    Web server checks first the external File System for the file (using the http_uif.c interface). If the file is not found there, the web server checks the internal virtual ROM file system for the file(compiled into the code). And finally if the file still not found, sends HTTP 404 error to the client.

    Because the cgi scripts and the HTTP_CGI.c interface are tightly coupled (the cgi script command has a c-function behind in HTTP_CGI.c module), we have followed the idea that cgi files should not be located on other drives.

    You can not locate cgi files anywhere else but the internal virtual ROM file system. However to reduce the size of the cgi files, you may want to extract the static header and footer into the separate (inc) file, which may be located on external drive. (see the HTTP_Demo example page TCP).

Children