Abstract
The World Wide Web has succeeded in large part because its software architecture has been designed to meet the needs of an Internet-scale distributed hypermedia application. The modern Web architecture emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems. In this article we introduce the Representational State Transfer (REST) architectural style, developed as an abstract model of the Web architecture and used to guide our redesign and definition of the Hypertext Transfer Protocol and Uniform Resource Identifiers. We describe the software engineering principles guiding REST and the interaction constraints chosen to retain those principles, contrasting them to the constraints of other architectural styles. We then compare the abstract model to the currently deployed Web architecture in order to elicit mismatches between the existing protocols and the applications they are intended to support.
- Andrews, G. 1991. Paradigms for process interaction in distributed programs. ACM Computing Surv. 23, 1 (March 1991), 49--90.]] Google Scholar
- Anklesaria, F., et al. 1993. The Internet Gopher protocol (a distributed document search and retrieval protocol). Internet RFC 1436, March 1993.]] Google Scholar
- Baker, M., et al. 2002. RESTwiki. <http://conveyor.com/RESTwiki/moin.cgi>, April 2002.]]Google Scholar
- Barrett, D. J., Clarke, L. A., Tarr, P. L., and Wise, A. E. 1996. A framework for event-based software integration. ACM Trans. Soft. Eng. Methodol. 5, 4 (Oct. 1996), 378--421.]] Google Scholar
- Bass, L., Clements, P., and Kazman, R. 1996. Software Architecture in Practice. Addison Wesley, Reading, MA.]] Google Scholar
- Berners-Lee, T. 1994. Universal resource identifiers in WWW. Internet RFC 1630, June 1994.]] Google Scholar
- Berners-Lee, T., Masinter, L., and McCahill, M. 1994. Uniform resource locators (URL). Internet RFC 1738, Dec. 1994.]] Google Scholar
- Berners-Lee, T. and Connolly, D. 1995. Hypertext markup language---2.0. Internet RFC 1866, Nov. 1995.]] Google Scholar
- Berners-Lee, T. 1996. WWW: Past, present, and future. Computer 29, 10 (Oct. 1996), 69--77.]] Google Scholar
- Berners-Lee, T., Fielding, R. T., and Nielsen, H. F. 1996. Hypertext transfer protocol---HTTP/1.0. Internet RFC 1945, May 1996.]] Google Scholar
- Berners-Lee, T., Fielding, R. T., and Masinter, L. 1998. Uniform resource identifiers (URI): Generic syntax. Internet RFC 2396, Aug. 1998.]] Google Scholar
- Brooks, C., Mazer, M. S., Meeks, S., and Miller, J. 1995. Application-specific proxy servers as HTTP stream transducers. In Proceedings of the Fourth International World Wide Web Conference (Boston, MA, Dec. 1995), 539--548.]]Google Scholar
- Chin, R. S. and Chanson, S. T. 1991. Distributed object-based programming systems. ACM Comput. Surv. 23, 1 (March 1991), 91--124.]] Google Scholar
- Clark, D. D. and Tennenhouse, D. L. 1990. Architectural considerations for a new generation of protocols. In Proceedings ACM SIGCOMM'90 Symposium (Philadelphia, PA, Sept. 1990), 200--208.]] Google Scholar
- Davis, F., et. al. 1990. WAIS interface protocol prototype functional specification (v.1.5). Thinking Machines Corp., Apr. 1990.]]Google Scholar
- Fielding, R. T. 1995. Relative uniform resource locators. Internet RFC 1808, June 1995.]] Google Scholar
- Fielding, R. T. 1994. Maintaining distributed hypertext infostructures: Welcome to MOMspider's web. Comput. Net. ISDN Syst. 27, 2 (Nov. 1994), 193--204.]] Google Scholar
- Fielding, R. T. 2000. Architectural styles and the design of network-based software architectures. PhD Dissertation. Dept. of Information and Computer Science, University of California, Irvine.]] Google Scholar
- Fielding, R. T., Gettys, J., Mogul, J. C., Nielsen, H. F., Masinter, L., Leach, P., and Berners-Lee, T. 1999. Hypertext transfer protocol---HTTP/1.1. Internet RFC 2616, June 1999.]] Google Scholar
- Fielding, R. T., Whitehead, E. J., Jr., Anderson, K. M., Bolcer, G., Oreizy, P., and Taylor, R. N. 1998. Web-based development of complex information products. Commun. ACM 41, 8 (Aug. 1998), 84--92.]] Google Scholar
- Flanagan, D. 1999. Java™ in a Nutshell, 3rd ed. O'Reilly & Associates, Sebastopol.]] Google Scholar
- Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., Sink, E., and Stewart, L. 1999. HTTP authentication: Basic and digest access authentication. Internet RFC 2617, June 1999.]] Google Scholar
- Freed, N. and Borenstein, N. 1996. Multipurpose internet mail extensions (MIME) Part One: Format of internet message bodies. Internet RFC 2045, Nov. 1996.]] Google Scholar
- Freed, N., Klensin, J., and J. Postel, J. 1996. Multipurpose internet mail extensions (MIME) Part Four: Registration procedures. Internet RFC 2048, Nov. 1996.]] Google Scholar
- Fuggetta, A., Picco, G. P., and Vigna, G. 1998. Understanding code mobility. IEEE Trans. Soft. Eng. 24, 5 (May 1998), 342--361.]] Google Scholar
- Garlan, D. and Shaw, M. 1993. An introduction to software architecture. Ambriola and Tortola, eds. In Advances in Software Engineering & Knowledge Engineering, vol. II, World Scientific 1993, 1--39.]]Google Scholar
- Glassman, S. 1994. A caching relay for the World Wide Web. Comput. Net. ISDN Syst. 27, 2 (Nov. 1994), 165--173.]] Google Scholar
- Grønbaek, K. and Trigg, R. H. 1994. Design issues for a Dexter-based hypermedia system. Commun. ACM 37, 2 (Feb. 1994), 41--49.]] Google Scholar
- Heidemann, J., Obraczka, K., and Touch, J. 1997. Modeling the performance of HTTP over several transport protocols. IEEE/ACM Trans. Net. 5, 5 (Oct. 1997), 616--630.]] Google Scholar
- Holtman, K. and Mutz, A. 1998. Transparent content negotiation in HTTP. Internet RFC 2295, March 1998.]] Google Scholar
- Kristol, D. and Montulli, L. 1997. HTTP state management mechanism. Internet RFC 2109, Feb. 1997.]] Google Scholar
- Luotonen, A. and Altis, K. 1994. World-Wide Web proxies. Comput. Net. ISDN Syst. 27, 2 (Nov. 1994), 147--154.]] Google Scholar
- Manola, F. 1999. Technologies for a Web object model. IEEE Internet Comput. 3, 1 (Jan.-Feb. 1999), 38--47.]] Google Scholar
- Maurer, H. 1996. HyperWave: The Next-Generation Web Solution. Addison-Wesley, Harlow, England, 1996.]] Google Scholar
- Mogul, J., Fielding, R. T., Gettys, J., and Nielsen, H. F. 1997. Use and interpretation of HTTP version numbers. Internet RFC 2145, May 1997.]] Google Scholar
- Nielsen, H. F., Leach, P., and Lawrence, S. 2000. HTTP extension framework, Internet RFC 2774, Feb. 2000.]] Google Scholar
- Padmanabhan, V. N. and Mogul, J. C. 1995. Improving HTTP latency. Comput. Net. ISDN Syst. 28 (Dec. 1995), 25--35.]] Google Scholar
- Perry, D. E. and Wolf, A. 1992. Foundations for the study of software architecture. ACM SIGSOFT Soft. Eng. Notes 17, 4 (Oct. 1992), 40--52.]] Google Scholar
- Postel, J. 1996. Media type registration procedure. Internet RFC 1590, Nov. 1996.]] Google Scholar
- Postel, J. and Reynolds, J. 1985. File transfer protocol. Internet STD 9, RFC 959, Oct. 1985.]] Google Scholar
- Rosenblum, D. S. and Wolf, A. L. 1997. A design framework for Internet-scale event observation and notification. In Proceedings of the 6th European Software Engineering Conference and 5th ACM SIGSOFT Symposium on the Foundations of Software Engineering (Zurich, Switzerland, Sept. 1997), 344--360.]] Google Scholar
- Sinha, A. 1992. Client-server computing. Commun. ACM 35, 7 (July 1992), 77--98.]] Google Scholar
- Sollins, K. and Masinter, L. 1994. Functional requirements for Uniform Resource Names. Internet RFC 1737, Dec. 1994.]] Google Scholar
- Spero, S. E. 1994. Analysis of HTTP performance problems. Published on the Web, <http://metalab.unc.edu/mdma-release/http-prob.html>.]]Google Scholar
- Sullivan, K. J. and Notkin, D. 1992. Reconciling environment integration and software evolution. ACM Trans. Soft. Eng. Methodol. 1, 3 (July 1992), 229--268.]] Google Scholar
- Taylor, R. N., Medvidovic, N., Anderson, K. M., Whitehead Jr., E. J., Robbins, J. E., Nies, K. A., Oreizy, P., and Dubrow, D. L. 1996. A component- and message-based architectural style for GUI software. IEEE Trans. Soft. Eng. 22, 6 (June 1996), 390--406.]] Google Scholar
- Waldo, J., Wyant, G., Wollrath, A., and Kendall, S. 1994. A note on distributed computing. Tech. Rep. SMLI TR-94-29, Sun Microsystems Laboratories, Inc., Nov. 1994.]] Google Scholar
- Wolman, A., Voelker, G., Sharma, N., Cardwell, N., Brown, M., Landray, T., Pinnel, D., Karlin, A., and Levy, H. 1999. Organization-based analysis of Web-object sharing and caching. In Proceedings of the 2nd USENIX Conference on Internet Technologies and Systems (Oct. 1999).]] Google Scholar
Index Terms
- Principled design of the modern Web architecture
Recommendations
Reflections on the REST architectural style and "principled design of the modern web architecture" (impact paper award)
ESEC/FSE 2017: Proceedings of the 2017 11th Joint Meeting on Foundations of Software EngineeringSeventeen years after its initial publication at ICSE 2000, the Representational State Transfer (REST) architectural style continues to hold significance as both a guide for understanding how the World Wide Web is designed to work and an example of how ...
Principled design of the modern Web architecture
ICSE '00: Proceedings of the 22nd international conference on Software engineeringThe World Wide Web has succeeded in large part because its software architecture has been designed to meet the needs of an Internet-scale distributed hypermedia system. The modern Web architecture emphasizes scalability of component interactions, ...
Cookies and Web browser design: toward realizing informed consent online
CHI '01: Proceedings of the SIGCHI Conference on Human Factors in Computing SystemsWe first provide criteria for assessing informed consent online. Then we examine how cookie technology and Web browser designs have responded to concerns about informed consent. Specifically, we document relevant design changes in Netscape Navigator and ...
Comments