r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!Cheyenne] Discussions about the Cheyenne Web Server

Graham
23-Sep-2008
[2774]
Presumably javascript supports all http verbs?
BrianH
23-Sep-2008
[2775x2]
I wouldn't presume that - test first.
Or look it up.
Graham
23-Sep-2008
[2777]
is this the way to support all clients ?  from cellphones, to pdas 
and then full featured client browsers
shadwolf
23-Sep-2008
[2778]
well i only used get and post so i can't tell the others options
BrianH
23-Sep-2008
[2779x4]
If you only use get and post, you can't do REST - it requires the 
others.
Handheld devices may be another matter. Many of them have poor JavaScript 
support, and most don't support XMLHTTP.
Those might require old school HTML get/post interfaces.
Which can also be implemented as Cheyenne proxies to your same LNS 
service.
Graham
23-Sep-2008
[2783x2]
how would one use cheyenne to load/balancing redistributing the resources
Cheyenne docs look a bit sparse ... the wiki sections are all looking 
for an author except for RSP. http://cheyenne-server.org/wiki/Main/HomePage
Dockimbel
24-Sep-2008
[2785x2]
Docs: I put the wiki online mainly because several peoples asked 
me for one so they can contribute by documenting Cheyenne...
REST: The starting point is to authorize all HTTP methods by adding 
them in mod-static/method-support callback. Then, if Cheyenne doesn't 
choke on them (should be treated by default as a GET, but untested), 
you can write a dispatching RSP page that will basically do a : switch 
request/method [GET [...] POST [...] DELETE [...] ...]. The upcoming 
v0.9.19 release will bring a URL aliasing feature that will allow 
nicer and more RESTful URL.
Graham
24-Sep-2008
[2787]
so people asked for a wiki and then don't contribute?
Dockimbel
24-Sep-2008
[2788]
Load balancing: if you're using RSP, you got it for free as each 
RSP is executed in its own separated process.
Graham
24-Sep-2008
[2789x2]
I think Brian was talking about using Cheyenne to do load/balancing 
for another application
as a proxy
Dockimbel
24-Sep-2008
[2791]
maybe the one that asked are now too busy...anyway, the wiki was 
a good testbed for enhanced PHP support in Cheyenne.
Graham
24-Sep-2008
[2792]
method-support: func [req][
		if not find [HEAD GET POST PUT] req/in/method [
			req/out/code: 405
			return true
		]
		none
	]
Dockimbel
24-Sep-2008
[2793]
Proxy: it can be done but requires a little more work, like building 
your own mod-something and implementing an async client protocol 
in Uniserve (unless you want to use the built-in HTTP async client 
protocol).
Graham
24-Sep-2008
[2794]
missing DELETE, OPTIONS, and FOO
Dockimbel
24-Sep-2008
[2795]
just extend the method block list with whatever method you need
Graham
24-Sep-2008
[2796]
so, how would one determine if it's a REST request or just a ordinary 
other request?
Dockimbel
24-Sep-2008
[2797x2]
the restriction on method was done mainly for security reasons (no 
appropriate default handler for other methods except these 4). PUT 
is treated by default like POST.
REST = HTTP request, so it depends on which handler will respond 
to the HTTP request. If your URL point to a .rsp => RSP handler.
Graham
24-Sep-2008
[2799x2]
Ok.
So, this is very doable then?
Dockimbel
24-Sep-2008
[2801x2]
So your REST URLs have to point to a .rsp resource.
Well, in theory, yes :-)
Graham
24-Sep-2008
[2803x2]
I see that Deki uses query parameters on their PUT methods
is that standard?
Dockimbel
24-Sep-2008
[2805]
If you need the HTTP client for Uniserve, just let me know, I have 
a much more recent unreleased version that should work better than 
the old one in Uniserve 0.9.9.
Graham
24-Sep-2008
[2806]
sure ..
Dockimbel
24-Sep-2008
[2807]
I guess that the HTTP method and URI query parameters are not related.
Graham
24-Sep-2008
[2808x2]
what I read is that parameters are supposed to be sent as custom 
headers with PUT
but I guess that's harder to process
Dockimbel
24-Sep-2008
[2810]
from RSP, you just have to look in request/headers to get custom 
headers.
Graham
24-Sep-2008
[2811x2]
what do you mean the REST URLs have to point to a rsp resource?
with REST you don't have a static page to point to
Dockimbel
24-Sep-2008
[2813x2]
for now, if you want that your requests be processed by Cheyenne, 
you have to.
Async HTTP client for UniServe: http://softinnov.org/tmp/HTTP-client.zip
Graham
24-Sep-2008
[2815]
T'hanks.
Dockimbel
24-Sep-2008
[2816x2]
HTTP.r shoud go in UniServe/protocols/, libs/ should go in UniServe/
Need to go now...
Graham
24-Sep-2008
[2818]
ok, thanks ..
amacleod
26-Sep-2008
[2819]
what version of core does cheyenne need?
Will it run on some core 2.5?

I was playing around with core on Win CE and 2.5 I believe is that 
last update...
Dockimbel
27-Sep-2008
[2820x4]
Cheyenne needs at least 2.7.5. It should work on 2.5 I guess if you 
backport some mezzanines (like EXTRACT) and emulate some natives 
(like UNLESS). You also need CALL or LAUNCH in order to support RSP 
and CGI scripts.
Cheyenne 0.9.19 Preview Release : http://cheyenne-server.org/tmp/cheyenne-r0919.zip
This release hasn't been much tested, that's what I've called it 
PR. I'll make the official release in a few days.
Main changes are :
- an improved PHP support (now works reliably)
- sandboxed RSP webapps (as much as it's possible in R2)
- now compatible with REBOL 2.7.6
- bugfixes

See ChangeLog.txt file in the archive for complete description.