- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在Reference of HttpRequest.HttpMethod
在 .NET Framework 中,请求类型使用 System.String
类型声明。
在RFC 2616声明了所有 HTTP 请求方法(例如 POST、GET、PUT、DELETE...)。
在 HttpWebRequest
中也有类似的行为和 .NET 的 WebRequest
类。
Java 在 HttpURLConnection#setRequestMethod(String)
上有类似的方法方法。
为什么这些语言设计者不考虑为那些 HTTP 方法实现枚举?
你有什么想法吗?
最佳答案
你的第一句话RFC 2616链接(添加了重点):
The set of common methods for HTTP/1.1 is defined below. Although this set can be expanded...
也就是说HTTP中的方法可以是任何东西。有一些“众所周知”或通用的方法,其语义很好理解(好吧,好吧,应该很好理解 - 我仍然遇到对 GET/POST 不清楚的人)。
但是任何应用程序都可以实现其他方法。希望那些其他方法的语义能够在客户端和服务器应用程序之间得到很好的理解。
由于这些原因,枚举是不合适的,因为总会有不适合该枚举的“其他”值。
来自 RFC 2616 的更多引述:
Practical information systems require more functionality than simple retrieval, including search, front-end update, and annotation. HTTP allows an open-ended set of methods and headers that indicate the purpose of a request
和,
The Method token indicates the method to be performed on the resource identified by the Request-URI. The method is case-sensitive.
Method = "OPTIONS" ; Section 9.2
| "GET" ; Section 9.3
| "HEAD" ; Section 9.4
| "POST" ; Section 9.5
| "PUT" ; Section 9.6
| "DELETE" ; Section 9.7
| "TRACE" ; Section 9.8
| "CONNECT" ; Section 9.9
| extension-method
extension-method = token
关于java - 为什么 HttpRequest.HttpMethod 是字符串而不是枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39948145/
我是一名优秀的程序员,十分优秀!