Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

server side browser

I was wondering if it is possible to run a browser (specifically a browser engine) on the server side. I do not just mean to render a page but to keep a browser open for some time, run some JS, do some clicks or press some keys and meanwhile grab the graphical output.

Does anyone know how to accomplish this? So far my only idea was to run the browser in a VNC, RDP etc. session but this seems like an overkill to me.

like image 299
Tobias Müller Avatar asked Mar 28 '13 21:03

Tobias Müller


People also ask

What is a server-side website?

By contrast, server-side website programming mostly involves choosing which content is returned to the browser in response to requests. The server-side code handles tasks like validating submitted data and requests, using databases to store and retrieve data and sending the correct data to the client as required.

What is client-side vs server-side?

Client-side means that the action takes place on the user's (the client's) computer. Server-side means that the action takes place on a web server.

What is client-side and server-side with example?

Client-side development gathers input from users. For example, developers can use JavaScript to create forms that collect user input. Meanwhile, server-side development processes this input. For example, developers can use PHP to connect a database to a website and send user-inputted data to the database.

Is JavaScript a server-side?

JavaScript is a client-side script, meaning the browser processes the code instead of the web server.


2 Answers

PhantomJS does what you are describing. It is basically a headless browser - http://phantomjs.org/

you can run it server side via any server side language. See some integration modules below for NodeJS and PHP

NodeJS

https://npmjs.org/package/node-phantom

https://github.com/sgentle/phantomjs-node

PHP

https://github.com/diggin/php-PhantomjsRunner

like image 65
Ali Gangji Avatar answered Nov 05 '22 11:11

Ali Gangji


Yes, it it very possible to run a web browser on a server. Ubuntu Server, for example can run firefox by simply installing firefox and xserver.

$ sudo apt-get install firefox
$ sudo apt-get install xserver-xorg

Then to get firefox running type:

$ X

This will leave you with a blank screen because there are no applications running on the display yet. You need to shift back to a new terminal with Ctrl-Alt-F2. Ctrl-Alt-F1 holds the X process now.

Login to the new terminal and set the environment’s display variable to :0 and launch firefox.

$ export DISPLAY=:0
$ firefox &

Firefox should now be running, but you'll notice it's got some quirks to it. If you decide that you want to go forward with this you should install a window manager. I'd go with a lightweight tiling window manager and run firefox and whatever other applications need graphical output within that window manager.

like image 33
middleinitial Avatar answered Nov 05 '22 11:11

middleinitial