SEARCH ENGINE ENHANCEMENT by EXTRACTING HIDDEN AJAX CONTENT in WEB APPLICATIONS by PAUL SUGANTHAN G C 20084053 MUTHUKUMAR V 20084041 NANDHAKUMAR B 20084043

Total Page:16

File Type:pdf, Size:1020Kb

SEARCH ENGINE ENHANCEMENT by EXTRACTING HIDDEN AJAX CONTENT in WEB APPLICATIONS by PAUL SUGANTHAN G C 20084053 MUTHUKUMAR V 20084041 NANDHAKUMAR B 20084043 SEARCH ENGINE ENHANCEMENT BY EXTRACTING HIDDEN AJAX CONTENT IN WEB APPLICATIONS by PAUL SUGANTHAN G C 20084053 MUTHUKUMAR V 20084041 NANDHAKUMAR B 20084043 A project report submitted to the FACULTY OF INFORMATION AND COMMUNICATION ENGINEERING in partial fulfillment of the requirements for the award of the degree of BACHELOR OF ENGINEERING in COMPUTER SCIENCE AND ENGINEERING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING ANNA UNIVERSITY CHENNAI CHENNAI - 600025 MAY 2012 CERTIFICATE Certified that this project report titled “ SEARCH ENGINE ENHANCEMENT BY EXTRACTING HIDDEN AJAX CONTENT IN WEB APPLICATIONS” is the bonafide work of PAUL SUGANTHAN G C (20084053), MUTHUKUMAR V (20084041), NANDHAKUMAR B (20084043) who carried out the project work under my supervision, for the fulfillment of the requirements for the award of the degree of Bachelor of Engineering in Computer Science and Engineering. Certified further that to the best of my knowledge, the work reported herein does not form part of any other thesis or dissertation on the basis of which a degree or an award was conferred on an earlier occasion on these are any other candidates. Place: Chennai Dr. V Vetriselvi Date: Project Guide, Designation, Department of Computer Science and Engineering, Anna University Chennai, Chennai - 600025 COUNTERSIGNED Head of the Department, Department of Computer Science and Engineering, Anna University Chennai, Chennai – 600025 ACKNOWLEDGEMENTS We express our deep gratitude to our guide, Dr. V VETRISELVI for guiding us through every phase of the project. We appreciate her thoroughness, tolerance and ability to share her knowledge with us. We thank her for being easily approachable and quite thoughtful. Apart from adding her own input, she has encouraged us to think on our own and give form to our thoughts. We owe her for harnessing our potential and bringing out the best in us. Without her immense support through every step of the way, we could never have it to this extent. We are extremely grateful to Dr. K.S. EASWARAKUMAR, Head of the Department of Computer Science and Engineering, Anna University, Chennai 600025, for extending the facilities of the Department towards our project and for his unstinting support. We express our thanks to the panel of reviewers Dr. ARUL SIROMONEY, Dr. A.P. SHANTHI and Dr. MADHAN KARKY (list of panel members) for their valuable suggestions and critical reviews throughout the course of our project. We thank our parents, family, and friends for bearing with us throughout the course of our project and for the opportunity they provided us in undergoing this course in such a prestigious institution. Paul Suganthan G C Muthukumar V Nandhakumar B ABSTRACT Current search engines such as Google and Yahoo! are prevalent for searching the Web. Search on dynamic client-side Web pages is, however, either inexistent or far from perfect, and not addressed by existing work, for example on Deep Web. This is a real impediment since AJAX and Rich Internet Applications are already very common in the Web. AJAX applications are composed of states which can be seen by the user, but not by the search engine, and changed by the user using client-side events. Current search engines either ignore AJAX applications or produce false negatives. The reason is that crawling client-side code is a difficult problem that cannot be solved naively by invoking user events. The project is aimed to propose a solution for crawling and extracting the hidden ajax content. Thus enabling the search engines to enhance its search result quality by indexing dynamic ajax content. Though AJAX can be crawled by testing manually in browser by invoking client side events, enhancing the search engine to crawl AJAX content automatically similar to traditional web applications hasn’t been achieved. The project describes the design and implementation of an AJAX Crawler. Then enabling search engine to index the crawled states of an AJAX page. The performance of AJAX Crawler is evaluated and compared with traditional crawler. The possible issues regarding crawling AJAX content and future optimizations are also analysed. திட்டப்பணிச் சுருக்கம் தற்ேபாது உள்ள ேதடு ெபாறிகள் அைனத்தும், இைணயதளத்தில் உள்ள அடிக்கடி மாறுகின்ற உைரைய ெகாண்டுள்ள வைலப்பக்கங்கைள ேதடுவதில்ைல. இதனால் இைணயதளத்தில் உள்ள பல உைரகள் மக்களுக்கு ெதrயாமல் ேபாகிறது. இத்திட்டத்தின் ேநாக்கம் மைறந்துள்ள பல உைரகைள ேதடு ெபாறிகளுக்கு ெதrய ெசய்வது. பிரதான கூகுள், யாஹூ ேபான்ற ேதடு ெபாறிகள் கூட பல உைரகைள கண்டுெகாள்ளாமல் இருக்கிறது. எனேவ இத்திட்டம் மூலம் இைணயதளத்தில் உள்ள மைறந்துள்ள பல உைரகள் ேதடு ெபாறிகளால் கண்டுபிடிக்கப்படும். ஆகேவ இைணயதளத்தில் உள்ள மைறந்துள்ள உைரகளின் எண்ணிக்ைக குைறயும். இத்திட்டத்தின் மூலம் ேதடு ெபாறிகளின் திறைம அதிகrக்கப்படும். Contents CERTIFICATEi ACKNOWLEDGEMENTS ii ABSTRACT(ENGLISH) iii ABSTRACT(TAMIL) iv LIST OF FIGURES viii LIST OF TABLES ix LIST OF ABBREVIATIONSx 1 INTRODUCTION1 1.1 AJAX................................1 1.2 Crawler...............................2 1.3 Problem Definition.........................3 1.4 Scope of the Project.........................4 1.5 Organisation of this Report.....................4 2 RELATED WORK5 2.1 Crawling AJAX...........................5 2.2 Finite State Machine........................8 2.3 Google’s AJAX Crawling Scheme.................8 3 REQUIREMENTS ANALYSIS 11 3.1 Functional Requirements...................... 11 3.2 Non-Functional Requirements................... 12 3.2.1 User Interface........................ 12 3.2.2 Hardware Considerations.................. 12 3.2.3 Performance Characteristics................ 12 3.2.4 Security Issues....................... 13 v 3.2.5 Safety Issues........................ 13 3.3 Constraints............................. 13 3.4 Assumptions............................ 14 4 SYSTEM DESIGN 15 4.1 System Architecture......................... 15 4.1.1 Architecture Diagram.................... 15 4.2 Module Descriptions........................ 17 4.2.1 Identification of Clickables................. 17 4.2.2 Event Invocation...................... 19 4.2.3 State Machine representation of AJAX website...... 19 4.2.3.1 Visualizing the State Machine.......... 21 4.2.4 Indexing.......................... 22 4.2.5 Searching.......................... 22 4.2.6 Reconstruction of state................... 22 4.3 User Interface Design........................ 22 4.4 UseCase Model........................... 23 4.4.1 UseCase Diagram...................... 23 4.5 System Sequence Diagram..................... 24 4.5.1 Event Invocation...................... 24 4.5.2 Searching.......................... 24 4.6 Data Flow Model.......................... 25 4.6.1 Data Flow Diagram..................... 25 5 SYSTEM DEVELOPMENT 28 5.1 Implementation........................... 28 5.1.1 Tools Used......................... 28 5.1.2 Implementation Description................ 28 5.1.2.1 Ajax Crawling Algorithm............ 29 5.1.2.2 State Machine.................. 32 5.1.2.3 Indexing..................... 34 5.1.2.4 Searching.................... 35 5.1.2.5 Reconstruction of a particular state after crawling 36 6 RESULTS AND DISCUSSION 37 6.1 Results................................ 37 6.2 Performance Evaluation....................... 39 vi 6.2.1 Crawling Time....................... 39 6.2.1.1 Number of States Vs Crawling Time...... 40 6.2.2 Clickable Selection Policy................. 41 6.2.2.1 Number of AJAX Requests Vs Probable Clickables.................... 42 6.2.2.2 Probable Clickables Vs Detected Clickables.. 43 6.2.3 Clickable Selection Ratio Vs Crawling Time....... 44 6.3 Search Result Quality........................ 45 6.4 Observations............................ 49 7 CONCLUSIONS 50 7.1 Contributions............................ 50 7.2 Future Work............................. 50 A Snapshots 52 A.1 Search Interface........................... 52 A.2 Google Bot and AJAX Crawler................... 54 B DOM 58 B.1 DOM - Document Object Model.................. 58 B.2 DOM Tree Representation..................... 58 References 60 vii List of Figures 1.1 Crawler Architecture........................3 2.1 AJAX Crawling Scheme......................9 2.2 Control Flow............................ 10 4.1 Architecture Diagram........................ 16 4.2 Visualizing State Machine..................... 21 4.3 UseCase Diagram.......................... 23 4.4 Sequence Diagram - Event Invocation............... 24 4.5 Sequence Diagram - Searching................... 25 4.6 Level 0 Data Flow Diagram..................... 25 4.7 Level 1 Data Flow Diagram..................... 26 4.8 Level 1 Data Flow Diagram..................... 27 6.1 Number of States Vs Crawling Time(in minutes)......... 40 6.2 Number of AJAX Requests Vs Probable Clickables........ 42 6.3 Probable Clickables Vs Detected Clickables............ 43 6.4 Clickable Selection Ratio Vs Crawling time per state(in minutes). 44 A.1 Interface I.............................. 52 A.2 Interface II............................. 53 A.3 Fetched By Google Bot....................... 54 A.4 Fetched By Google Bot....................... 55 A.5 Fetched By AJAX Crawler..................... 56 A.6 Fetched By AJAX Crawler..................... 57 B.1 DOM Tree.............................. 59 viii List of Tables 5.1 Tools Used............................. 28 6.1 Test Cases.............................. 37 6.2 Experimental Results........................ 38 6.3 Crawling Time........................... 39 6.4 Clickable Selection Policy..................... 41 ix LIST OF ABBREVIATIONS Acronym What (it) Stands For AJAX Asynchronous Javascript And
Recommended publications
  • Differential Fuzzing the Webassembly
    Master’s Programme in Security and Cloud Computing Differential Fuzzing the WebAssembly Master’s Thesis Gilang Mentari Hamidy MASTER’S THESIS Aalto University - EURECOM MASTER’STHESIS 2020 Differential Fuzzing the WebAssembly Fuzzing Différentiel le WebAssembly Gilang Mentari Hamidy This thesis is a public document and does not contain any confidential information. Cette thèse est un document public et ne contient aucun information confidentielle. Thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Technology. Antibes, 27 July 2020 Supervisor: Prof. Davide Balzarotti, EURECOM Co-Supervisor: Prof. Jan-Erik Ekberg, Aalto University Copyright © 2020 Gilang Mentari Hamidy Aalto University - School of Science EURECOM Master’s Programme in Security and Cloud Computing Abstract Author Gilang Mentari Hamidy Title Differential Fuzzing the WebAssembly School School of Science Degree programme Master of Science Major Security and Cloud Computing (SECCLO) Code SCI3084 Supervisor Prof. Davide Balzarotti, EURECOM Prof. Jan-Erik Ekberg, Aalto University Level Master’s thesis Date 27 July 2020 Pages 133 Language English Abstract WebAssembly, colloquially known as Wasm, is a specification for an intermediate representation that is suitable for the web environment, particularly in the client-side. It provides a machine abstraction and hardware-agnostic instruction sets, where a high-level programming language can target the compilation to the Wasm instead of specific hardware architecture. The JavaScript engine implements the Wasm specification and recompiles the Wasm instruction to the target machine instruction where the program is executed. Technically, Wasm is similar to a popular virtual machine bytecode, such as Java Virtual Machine (JVM) or Microsoft Intermediate Language (MSIL).
    [Show full text]
  • Dynamic Web Pages with the Embedded Web Server
    Dynamic Web Pages With The Embedded Web Server The Digi-Geek’s AJAX Workbook (NET+OS, XML, & JavaScript) Version 1.0 5/4/2011 Page 1 Copyright Digi International, 2011 Table of Contents Chapter 1 - How to Use this Guide ............................................................................................................... 5 Prerequisites – If You Can Ping, You Can Use This Thing! ..................................................................... 5 Getting Help with TCP/IP and Wi-Fi Setup ............................................................................................ 5 The Study Guide or the Short Cut? ....................................................................................................... 5 C Code ................................................................................................................................................... 6 HTML Code ............................................................................................................................................ 6 XML File ................................................................................................................................................. 6 Provide us with Your Feedback ............................................................................................................. 6 Chapter 2 - The Server-Client Relationship ................................................................................................... 7 Example – An Analogy for a Normal HTML page .................................................................................
    [Show full text]
  • Attacking AJAX Web Applications Vulns 2.0 for Web 2.0
    Attacking AJAX Web Applications Vulns 2.0 for Web 2.0 Alex Stamos Zane Lackey [email protected] [email protected] Blackhat Japan October 5, 2006 Information Security Partners, LLC iSECPartners.com Information Security Partners, LLC www.isecpartners.com Agenda • Introduction – Who are we? – Why care about AJAX? • How does AJAX change Web Attacks? • AJAX Background and Technologies • Attacks Against AJAX – Discovery and Method Manipulation – XSS – Cross-Site Request Forgery • Security of Popular Frameworks – Microsoft ATLAS – Google GWT –Java DWR • Q&A 2 Information Security Partners, LLC www.isecpartners.com Introduction • Who are we? – Consultants for iSEC Partners – Application security consultants and researchers – Based in San Francisco • Why listen to this talk? – New technologies are making web app security much more complicated • This is obvious to anybody who reads the paper – MySpace – Yahoo – Worming of XSS – Our Goals for what you should walk away with: • Basic understanding of AJAX and different AJAX technologies • Knowledge of how AJAX changes web attacks • In-depth knowledge on XSS and XSRF in AJAX • An opinion on whether you can trust your AJAX framework to “take care of security” 3 Information Security Partners, LLC www.isecpartners.com Shameless Plug Slide • Special Thanks to: – Scott Stender, Jesse Burns, and Brad Hill of iSEC Partners – Amit Klein and Jeremiah Grossman for doing great work in this area – Rich Cannings at Google • Books by iSECer Himanshu Dwivedi – Securing Storage – Hackers’ Challenge 3 • We are
    [Show full text]
  • Mastering Ajax, Part 4: Exploiting DOM for Web Response Convert HTML Into an Object Model to Make Web Pages Responsive and Interactive
    Mastering Ajax, Part 4: Exploiting DOM for Web response Convert HTML into an object model to make Web pages responsive and interactive Skill Level: Introductory Brett McLaughlin Author and Editor O'Reilly Media Inc. 14 Mar 2006 The great divide between programmers (who work with back-end applications) and Web programmers (who spend their time writing HTML, CSS, and JavaScript) is long standing. However, the Document Object Model (DOM) bridges the chasm and makes working with both XML on the back end and HTML on the front end possible and an effective tool. In this article, Brett McLaughlin introduces the Document Object Model, explains its use in Web pages, and starts to explore its usage from JavaScript. Like many Web programmers, you have probably worked with HTML. HTML is how programmers start to work on a Web page; HTML is often the last thing they do as they finish up an application or site, and tweak that last bit of placement, color, or style. And, just as common as using HTML is the misconception about what exactly happens to that HTML once it goes to a browser to render to the screen. Before I dive into what you might think happens -- and why it is probably wrong -- I want you need to be clear on the process involved in designing and serving Web pages: 1. Someone (usually you!) creates HTML in a text editor or IDE. 2. You then upload the HTML to a Web server, like Apache HTTPD, and make it public on the Internet or an intranet. Exploiting DOM for Web response Trademarks © Copyright IBM Corporation 2006 Page 1 of 19 developerWorks® ibm.com/developerWorks 3.
    [Show full text]
  • The Implementation of Large Video File Upload System Based on the HTML5 API and Ajax Yungeng Xu , Sanxing
    Joint International Mechanical, Electronic and Information Technology Conference (JIMET 2015) The Implementation of Large Video File Upload System Based on the HTML5 API and Ajax Yungeng Xu1, a, Sanxing Cao2, b 1 Department of Science and Engineering, Communication University of China, Beijing 2 New Media Institute, Communication University of China, Beijing a b [email protected], [email protected] Keywords: HTML5; File upload; Shell; XMLHttpRequest Abstract. The function of upload file is an important web page designs. Traditional file upload function for file upload function by HTML form and $_FILES system function, has the advantages of convenience, can cope with a relatively small file upload. The traditional HTML way has been difficult to meet the upload of the oversized file. Service not only to open a link waiting for this file is uploaded, but also to allocate the same size of memory to save this file. In the case of large concurrency may cause a great pressure on the server. This article is the use of HTML5 File API to upload video files in the original form on the basis of form, use the function of slice inside the HTML5 file API for the split file upload, to achieve the result of no refresh upload files. Have a valid practical significance. Introduction With the development of web technology, watch videos on the website has become an important forms of entertainment in the people's daily life. Internet video give people a great deal of freedom to choose the way of entertainment, not limited to the live TV mode. People can watch the video on the webpage.
    [Show full text]
  • Navigation and Interaction in Urban Environments Using Webgl
    NAVIGATION AND INTERACTION IN URBAN ENVIRONMENTS USING WEBGL Mar´ıa Dolores Robles-Ortega, Lidia Ortega, Francisco R. Feito and Manuel J. Gonz´alez Department of Computer Science, University of Ja´en, Paraje Las Lagunillas, s/n 23071 Ja´en, Spain Keywords: WebGL, X3DOM, 3D Urban Scenes, X3D, Web System. Abstract: The process of rendering and interacting with large scenes in web systems is still an open problem in 3D urban environments. In this paper we propose a prototype to visualize a city model in a client-server architecture using open-source technologies like WebGL and X3DOM. Moreover, free navigation around the scene is allowed and users are able to obtain additional information when interacting with buildings and street furniture. To achieve this objective, a MySQL geodatabase has been designed to store both geometric and non-geometric urban information. Therefore, the extra data about the urban elements is obtained through queries in the database. The communication process between MySQL and the X3D model is performed by Ajax. 1 INTRODUCTION model. Evidently, the language used to implement the 3D City Modeling (3DCM) is a research area of great system should fulfill all the requirements described interest with a wide range of applications such as ur- above. Nowadays there are some approaches, like the ban planning, architecture, emergency management, ISO standard language X3D (W3C, 2004) for render- or engineering and construction. The accessibility ing 3D scenes in the Web, but they need the installa- of these tools through the Internet would be a desir- tion of specific plugins. To avoid this drawback, some able option.
    [Show full text]
  • AJAX Xmlhttprequest
    AAJJAAXX -- XXMMLLHHTTTTPPRREEQQUUEESSTT http://www.tutorialspoint.com/ajax/what_is_xmlhttprequest.htm Copyright © tutorialspoint.com The XMLHttpRequest object is the key to AJAX. It has been available ever since Internet Explorer 5.5 was released in July 2000, but was not fully discovered until AJAX and Web 2.0 in 2005 became popular. XMLHttpRequest XHR is an API that can be used by JavaScript, JScript, VBScript, and other web browser scripting languages to transfer and manipulate XML data to and from a webserver using HTTP, establishing an independent connection channel between a webpage's Client-Side and Server-Side. The data returned from XMLHttpRequest calls will often be provided by back-end databases. Besides XML, XMLHttpRequest can be used to fetch data in other formats, e.g. JSON or even plain text. You already have seen a couple of examples on how to create an XMLHttpRequest object. Listed below is listed are some of the methods and properties that you have to get familiar with. XMLHttpRequest Methods abort Cancels the current request. getAllResponseHeaders Returns the complete set of HTTP headers as a string. getResponseHeaderheaderName Returns the value of the specified HTTP header. openmethod, URL openmethod, URL, async openmethod, URL, async, userName openmethod, URL, async, userName, password Specifies the method, URL, and other optional attributes of a request. The method parameter can have a value of "GET", "POST", or "HEAD". Other HTTP methods, such as "PUT" and "DELETE" primarilyusedinRESTapplications may be possible. The "async" parameter specifies whether the request should be handled asynchronously or not. "true" means that the script processing carries on after the send method without waiting for a response, and "false" means that the script waits for a response before continuing script processing.
    [Show full text]
  • The Use of Scalable Vector Graphics in Flexible, Thin-Client Architectures for Tv Navigation
    THE USE OF SCALABLE VECTOR GRAPHICS IN FLEXIBLE, THIN-CLIENT ARCHITECTURES FOR TV NAVIGATION Michael Adams Solution Area TV, Ericsson Abstract Support rapid development of new applications without the need for new Today’s subscribers are demanding more software download to the set-top and more from their service providers: Enable personalization of a service to each subscriber’s preferences Personalization: New behaviors from a Allow full customization of the user- new generation of “digital natives”, (who interface, including branding expect the service to adapt to them!), Allow the use of third-party developers, powerful search capabilities, and using Web 2.0 service creation methods recommendations engines. Provide set-top independence and Communication: Multitasking, social multiplatform portability networking, and sharing the viewing Decouple CA/DRM certification from new experience through chat and instant features and applications development messaging Interactivity: Polls, games, and enhanced INTRODUCTION programming Today’s subscribers are demanding more And subscribers want all the above and more from their service providers. What services and features to be delivered as a they want can be grouped into three main single, integrated service experience across categories: any device, anywhere, and at anytime! Personalization The Internet has shown how to deliver all Communication kinds of services by means of thin-client Interactivity approaches using the Representational State Transfer (REST) model. Meanwhile, most Personalization deployed cable architectures still rely on a “state-full”, thick-client approach. I want my service to adapt to my needs. I need recommendations to sort my Can thin-client architectures really “wheat” from the “chaff”. satisfy large cable system requirements for I want to watch anything, on any device, performance, scalability, high-availability, at any time, anywhere.
    [Show full text]
  • A Websocket-Based Approach to Transporting Web Application Data
    A WebSocket-based Approach to Transporting Web Application Data March 26, 2015 A thesis submitted to the Division of Graduate Studies and Research of the University of Cincinnati in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE in the Department of Computer Science of the College of Engineering and Applied Science by Ross Andrew Hadden B.S., University of Cincinnati, Cincinnati, Ohio (2014) Thesis Adviser and Committee Chair: Dr. Paul Talaga Committee members: Dr. Fred Annexstein, Professor, and Dr. John Franco, Professor Abstract Most web applications serve dynamic data by either deferring an initial page response until the data has been retrieved, or by returning the initial response immediately and loading additional content through AJAX. We investigate another option, which is to return the initial response immediately and send additional content through a WebSocket connection as the data becomes available. We intend to illustrate the performance of this proposition, as compared to popular conventions of both a server- only and an AJAX approach for achieving the same outcome. This dissertation both explains and demonstrates the implementation of the proposed model, and discusses an analysis of the findings. We use a Node.js web application built with the Cornerstone web framework to serve both the content being tested and the endpoints used for data requests. An analysis of the results shows that in situations when minimal data is retrieved after a timeout, the WebSocket method is marginally faster than the server and AJAX methods, and when retrieving populated files or database records it is marginally slower. The WebSocket method considerably outperforms the AJAX method when making multiple requests in series, and when making requests in parallel the WebSocket and server approaches both outperform AJAX by a tremendous amount.
    [Show full text]
  • Making Phone Calls from Blazor Webassembly with Twilio Voice
    © Niels Swimberghe https://swimburger.net - @RealSwimburger 1 About me • Niels Swimberghe aka Swimburger • Grew up in Belgium, working in USA • .NET Developer / Tech Content Creator • Blog at swimbuger.net • Twitter: @RealSwimburger • Company: 2 Programmatic communication using HTTP Webhooks Example TwiML Sample: https://demo.twilio.com/welcome/voice/ Based on in-depth guide on Twilio Blog Check out guide at Twilio Blog Application • Out of the box Blazor WebAssembly application • Phone dialer • Initiate phone calls from browser • Receive phone calls in browser Recommended architecture Demo architecture Demo architecture Auth flow 1. Ajax HTTP Request JWT token 2. Server generates JWT token and sends token in HTTP response 3. Twilio JavaScript SDK establishes bidirectional connection with Twilio over WebSocket Incoming call flow 1. Phone calls Twilio Phone Number 2. Twilio sends HTTP request to your webhook asking for instructions 3. Webhook responds with TwiML instructions Incoming call flow Webhook responds with TwiML instructions Incoming call flow 4. Twilio dials client 5. Client accepts incoming connection => VoIP established Outgoing call flow 1. Client connects to Twilio with To parameter 2. Twilio sends HTTP request to your webhook asking for instructions 3. Webhook responds with TwiML instructions Outgoing call flow Webhook responds with TwiML instructions Outgoing call flow 4. Twilio dials phone number 5. Phone accepts incoming connection => VoIP established Let’s see how its built Step 1: Create Twilio resources • You need to
    [Show full text]
  • Lecture 10 – Ajax and Jquery
    Lecture 10 – Ajax and jQuery INLS 760 Web Databases Spring 2013 Rob Capra AJAX What is AJAX? 1. The “original” Ajax… is in Agamemnon’s army 2. Another Ajax… is “stronger than dirt” 3. Asynchronous JavaScript and XML Where can I get Ajax? 1. Homer’s Iliad 2. Try the grocery store 3. There is nothing to “get” support is built-in to modern browsers. Ajax is a programming technique. 2 What does AJAX do? • Traditional use of HTTP causes pages to be reloaded when data is exchanged • AJAX uses JavaScript’s XMLHttpRequest method to exchange data with the server without reloading the current page. – This enables quick, small transactions – Client can communicate more often with the server – More flexible user-interfaces can be built – Web applications can look/act more like desktop apps 3 Digging Deeper • Traditional HTTP communication – User clicks a link or presses a form button – Client browser makes an HTTP request using either GET or POST – Server processes request and sends a response – Browser loads the response in a new web page 4 Digging Deeper • AJAX – JavaScript event fires • calls user defined JavaScript function – Client browser makes a request using XMLHttpRequest – Client sets a handler to process the response when it arrives • This communication is asynchronous, so response could arrive whenever – When the response arrives, a client handler does something • For example, update just a PART of the page 5 “Real-World” Example • Google Suggest 6 Simple Example – Client Side <form name="myForm"> Name: <input type="text" onkeyup="ajaxFunction();"
    [Show full text]
  • Ajax Programming for the Absolute Beginner
    Ajax Programming for the Absolute Beginner Jerry Lee Ford, Jr. Course Technology PTR A part of Cengage Learning Australia, Brazil, Japan, Korea, Mexico, Singapore, Spain, United Kingdom, United States Ajax Programming for the Absolute © 2009 Course Technology, a part of Cengage Learning. Beginner: Jerry Lee Ford, Jr. ALL RIGHTS RESERVED. No part of this work covered by the copyright Publisher and General Manager, Course herein may be reproduced, transmitted, stored, or used in any form or by Technology PTR: Stacy L. Hiquet any means graphic, electronic, or mechanical, including but not limited to photocopying, recording, scanning, digitizing, taping, Web distribution, Associate Director of Marketing: information networks, or information storage and retrieval systems, except Sarah Panella as permitted under Section 107 or 108 of the 1976 United States Copyright Manager of Editorial Services: Act, without the prior written permission of the publisher. Heather Talbot Marketing Manager: Mark Hughes For product information and technology assistance, contact us at Cengage Learning Customer & Sales Support, 1-800-354-9706 Acquisitions Editor: Mitzi Koontz For permission to use material from this text or product, submit all Project Editor: Jenny Davidson requests online at cengage.com/permissions Further permissions questions can be emailed to [email protected] Technical Reviewer: Keith Davenport PTR Editorial Services Coordinator: Jen Blaney All trademarks are the property of their respective owners. Library of Congress Control Number: 2008928834 Interior Layout Tech: Value-Chain ISBN-13: 978-1-59863-564-5 Cover Designer: Mike Tanamachi ISBN-10: 1-59863-564-6 Indexer: Katherine Stimson eISBN-10: 1-43545-531-2 Course Technology Proofreader: Sara Gullion 25 Thomson Place Boston, MA 02210 USA Cengage Learning is a leading provider of customized learning solutions with office locations around the globe, including Singapore, the United Kingdom, Australia, Mexico, Brazil, and Japan.
    [Show full text]