Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 1.根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。 2.根据HTTP规范,POST表示可能修改变服务器上的资源的请求。 (1).所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态.但在实际应用中,以上2条规定并没有这么严格。引用别人文章的例子:比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。从根本上说,如果目标是当用户打开一个链接时,他可以确信从自身的角度来看没有改变资源即可。 ### HTTP协议接口及代码解析(超详细) #### HTTP基本概念 HTTP(Hypertext Transfer Protocol)即超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是基于TCP/IP通信协议来传递数据(HTML文档、图片、视频等)。HTTP的核心功能在于无状态、客户端/服务器模式的请求/响应以及缓存处理。 #### HTTP请求方法详解 HTTP定义了与服务器交互的不同方法,主要包括四种基本请求方法:GET、POST、PUT、DELETE。这些方法对应于对资源的查、改、增、删等操作。 - **GET**:用于请求访问已经被URI(Uniform Resource Identifier)识别的资源。可以通过URL传入参数。根据HTTP规范,GET方法应该安全且幂等。 - **安全**:意味着该操作仅用于获取信息而非修改信息。理论上GET请求不应产生副作用。 - **幂等**:指的是无论执行多少次同一操作,其结果都是相同的。例如,两次GET请求同一资源的结果应相同。 - **POST**:用于向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改。 - **PUT**:用于向指定资源位置上传其最新内容。PUT方法要求被请求的资源的所有内容都应被新的内容所替换。 - **DELETE**:请求服务器删除Request-URI 所标识的资源。 #### GET与POST的区别 1. **数据位置**: - GET:请求的数据会附在URL之后(即把数据放置在HTTP协议头中),参数之间以`&`相连。 - POST:把提交的数据放置在HTTP包的包体中。 2. **数据大小限制**: - GET:由于数据放置在URL中,因此受到URL长度限制的影响。大多数浏览器限制URL长度为2083字节,包括协议名称(例如http://)和域名。实际参数长度会更少。 - POST:理论上没有大小限制,但服务器可能会对POST数据设置一定的限制。 3. **安全性**: - GET:数据在URL中明文显示,可能不适合传输敏感数据。 - POST:数据位于包体中,相对更安全,适合传输敏感信息。 4. **缓存机制**: - GET:容易被缓存,适合检索数据。 - POST:无法被缓存,不适合用于检索数据。 5. **幂等性**: - GET:幂等,可以重复执行多次而不改变结果。 - POST:非幂等,每次调用可能会有不同结果。 6. **使用场景**: - GET:适用于数据查询操作。 - POST:适用于数据更新操作。 #### 实际开发中GET与POST的使用 尽管HTTP规范对GET和POST方法进行了明确规定,但在实际开发中,这两种方法的使用并不总能完全遵循规范。以下是一些常见的原因: 1. **便捷性**:许多人为了方便,在更新资源时使用GET方法,因为使用POST必须通过表单(FORM),这在某些情况下可能较为繁琐。 2. **功能性覆盖**:实际上,所有对资源的增、删、改、查操作都可以通过GET/POST完成,不一定需要使用PUT和DELETE。 3. **框架限制**:早期Web MVC框架设计者并未有意识地将URL当作抽象资源看待和设计,因此许多传统Web MVC框架仅支持GET和POST两种HTTP方法,而不支持PUT和DELETE。 #### MVC模式简介 MVC模式(Model-View-Controller)最初应用于桌面程序,其中M代表数据模型(Model),V代表用户界面(View),C代表控制器(Controller)。MVC的目的在于将数据模型和视图的实现代码分离,使得同一程序可以拥有不同的表现形式。然而,在早期的Web开发中,这种模式的应用并不普遍,导致了对HTTP规范的支持不够充分。 #### 结论 随着技术的发展,尤其是RESTful架构的兴起,越来越多的开发者开始重视并遵循HTTP规范,使用正确的HTTP方法来处理资源操作。这有助于提高应用程序的性能和安全性,并使API更加标准化和易于理解。理解HTTP的基本原理及其核心概念对于构建高效、可扩展的Web服务至关重要。
剩余8页未读,继续阅读
- 粉丝: 7381
- 资源: 47
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助