World: r3wp
[!Cheyenne] Discussions about the Cheyenne Web Server
older newer | first last |
Pekr 23-Apr-2007 [383] | What is advantage of your aproach? (Just asking, as I dunno what mod rewrite is good for) |
Chris 23-Apr-2007 [384] | This rewrite rule takes any request (third line) for a file that doesn't exist (second line) and redirects to my cgi script. |
Pekr 23-Apr-2007 [385] | hah, nice - so, the thing is, that I can have URI, while file does not be located at that place? Kind of "virtual file"? :-) |
Chris 23-Apr-2007 [386] | The advantage of this is that my cgi script can make decisions based on the full request, not just the query string. |
Pekr 23-Apr-2007 [387] | what do you mean by "the full request"? |
Chris 23-Apr-2007 [388] | For example, from this url: http://foo.com/pages/edit/1-- I get the Request_Uri value "/pages/edit/1" then parse it -- ["pages" "edit" "1"] -- here I have a controller, and action and an id. It is a more enduring approach than http://foo.com/cgi-bin/qm.r?controller=pages&action=edit&id=1 |
Pekr 23-Apr-2007 [389] | why do you regard it being a difference? |
Chris 23-Apr-2007 [390] | This is veering OT, so I'll point you here: http://www.w3.org/Provider/Style/URI http://www.alistapart.com/articles/succeed/ http://www.alistapart.com/articles/urls/ We can discuss further in 'Web' |
Dockimbel 23-Apr-2007 [391x4] | RE: get-env "REQUEST_URI" : using the CGI or the RSP handler ? |
The Rewriting engine for Cheyenne has not been implemented yet. I know that Will developed a simple one for Cheyenne/RSP based on PARSE rules. | |
Re: REQUEST_URI, in CGI mode => all request parameters are in system/options/cgi | |
Re: REQUEST_URI, in RSP mode => all request parameters are in request/in (deprecated in the upcoming version) | |
Chris 23-Apr-2007 [395] | Looking for it in the CGI handler. Request_URI isn't in the system/options/cgi block -- even using Apache, I have to do get-env "REQUEST_URI" |
Dockimbel 23-Apr-2007 [396x2] | You should be able to obtain an equivalent to REQUEST_URI by join several values from system/options/cgi. |
join => joining | |
Chris 23-Apr-2007 [398x3] | Except without being able to rewrite, the request_uri will always be the same... |
If I type http://localhost/pages/this-- I need to run /cgi/qm.r and have access to '/pages/this' | |
I haven't delved deep enough to understand if this'd be better written as a Cheyenne handler, though that would require forking the cgi script, which for the time being, also has to run under Apache. | |
Dockimbel 23-Apr-2007 [401x2] | I see the problem. |
If I give you a customized Cheyenne handler for QM that can check URLs (with parse rules) and send them to /cgi/qm.r before checking the local filesystem, would it suit your needs ? | |
Graham 23-Apr-2007 [403x4] | Sounds good. |
Isn't this how Zope works? | |
The whole Zope website is just a huge Python object, and when you access a path, the Zope webserver executes the object referred to ... | |
But you can remap paths on the fly | |
Dockimbel 23-Apr-2007 [407] | Don't know how Zope handles rewriting, but the solution I've proposed to Chris is quite specific (even if it could be parameterized). The solution I had in mind for a Rewriting engine would be much more generic. |
Graham 23-Apr-2007 [408] | A few of us are experiementing with Chris' project .. so something that just sends everything to qm.cgi or qm.r would be helpful. |
Dockimbel 23-Apr-2007 [409] | The Mod-MapURL that I'll provide in the next release will act like that, mapping URLS to REBOL objects (with nesting supported). |
Graham 23-Apr-2007 [410] | so, the application could just be a large object? Or the objects are on disk? |
Dockimbel 23-Apr-2007 [411] | in-memory objects |
Graham 23-Apr-2007 [412x2] | Ok. |
From memory Zope has a disk based object database ... | |
Dockimbel 23-Apr-2007 [414] | All the application in a large object, if you design it like that, sure. |
Graham 23-Apr-2007 [415] | How's sessions going? :) |
Dockimbel 23-Apr-2007 [416x3] | Yes, I know about ZODB, quite interesting OODB. |
Very well, I'm currently testing the whole RSP framework by building a "test" application : a new web-based bugtracker ;-) | |
It helps me tweak the session system and add some small but useful features. | |
Graham 23-Apr-2007 [419x2] | bootstrapping ? |
Anyway, sounds like progress is being made :) | |
Dockimbel 23-Apr-2007 [421x4] | Yes, I quite happy with the speed and stability of the new implementation, I have RSP pages with 3 SQL queries to a MySQL backend, input and output filters, session handling, tables constructed dynamically with data from DB, all this occuring in a few milliseconds...I still need to test how it scales. |
I => I'm | |
RSP now supports a thin layer for easier DB access. No need to open/close connections, they are persistent and pooled. | |
As soon as the bugtracker is ready, I'll put it online and release a new beta of Cheyenne. | |
Graham 23-Apr-2007 [425] | I think I just opened a connection from start up and kept it open. |
Dockimbel 23-Apr-2007 [426] | The "thin layer" I was talking about doesn't do much more than that, but it's done in a clean and handy way, and once for all. |
Graham 23-Apr-2007 [427] | ok. |
Dockimbel 23-Apr-2007 [428] | I'm finishing a mod-qm for Cheyenne. I'll need to test it and will drop here a download URL. |
Graham 23-Apr-2007 [429] | Nice |
Dockimbel 23-Apr-2007 [430] | hum, problem with [get-env "REQUEST_URI"], I can't set-env ! Is there a simple way to set an environment variable from REBOL ? |
Graham 23-Apr-2007 [431x2] | no |
I think you can set it for the session, but as soon as you reboot .. it's gone. | |
older newer | first last |