`
songkang666
  • 浏览: 105947 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Http Request Methods

 
阅读更多
HTTP 协议定义了一系列的request方法
GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS、CONNECT,其中GET和POST是应用最多的,网页中的表单的提交都用GET或POST请求方式。

        GET请求方法用于信息获取,而且应该是安全的和幂等的。
1、所谓安全的意味着该操作用于获取信息而非修改信息。
2、幂等的意味着对同一URL的多个请求应该返回同样的结果。
例如:发送一个GET请求,服务器可以返回一个网页内容,总之,就是获取内容。

        POST请求方法可能改变服务器上的资源。
例如:在blog最后进行评论,可以通过POST的请求方法将评论进行提交,之后网页中会显示评论的内容。

        在表现上,通过GET方式进行的请求,在浏览器的地址栏中会显示URL以及提交的数据,并以?来分割URL和传输数据,多个参数用&连接。
        而通过POST方式进行的请求,提交的数据会被包裹在HTTP包的体内。
        因此,从安全性上来说,POST会比GET更安全,不容易泄漏用户信息。
        举个例子来说,像在百度中进行搜索时,当点击百度一下之后,地址栏中会出来一串东西,而在“?”之后,有不少参数,搜索的关键字会被显示在地址栏中,浏览器若设记录历史,那么很容易让人别知道你查过什么,从而得知你的搜索爱好,譬如:波多野吉衣啦,哈哈!!


Content Negotiation是个好东西。
HTTP支持客户端与服务器端的协商,客户端可以利用附加的request headers,如Accept, Accept-Lanuage, Accept-Charset, Accept-Encoding来告诉服务器端它更倾向于的content。如果服务器端可以提供同一文件的不同格式的多种版本,它会返回给客户端更倾向于的那种。


more:
HTTP POST GET 本质区别详解
In Introduction to HTTP Basics
分享到:
评论
3 楼 nonocast 2013-04-17  
google fiddler, sniffer
这类工具都可以监听你浏览器和网站间所有的数据,数据以未加密的方式呈现,你可以很容易看到你的用户名,上传数据的内容,这里的透明就是未加密,https就是对通信链路做了加密,旁人无法监听。
2 楼 songkang666 2013-04-17  
这里所说的透明是什么意思,之前对透明概念的理解是针对底一层的协议对高一层的协议是透明的,较高层协议对不用关心低层的。
nonocast 写道
仔细区分POST和PUT。

另外GET/POST/PUT这类的HTTP全部是透明协议,换句话说你可以在浏览器到最终网站间插入中间人就可以明文获取所有内容,所有有效的安全措施是HTTPS。举例来说你通过浏览器发送邮件,如果走的是HTTP,我只需要在路由器上进行截包就可以看到你发给别人的邮件,MSN也是透明协议所以基本上网管是都能监控。

不仅可以监控还可以将你的内容偷天换日,所以HTTP的安全是需要高度重视,此外cookie也是一个安全重灾区。

1 楼 nonocast 2013-04-17  
仔细区分POST和PUT。

另外GET/POST/PUT这类的HTTP全部是透明协议,换句话说你可以在浏览器到最终网站间插入中间人就可以明文获取所有内容,所有有效的安全措施是HTTPS。举例来说你通过浏览器发送邮件,如果走的是HTTP,我只需要在路由器上进行截包就可以看到你发给别人的邮件,MSN也是透明协议所以基本上网管是都能监控。

不仅可以监控还可以将你的内容偷天换日,所以HTTP的安全是需要高度重视,此外cookie也是一个安全重灾区。

相关推荐

    Ext.Ajax.request跨域

    Ext.Ajax.request是ExtJS提供的一种发起Ajax请求的方式,它允许开发者向服务器发送异步HTTP请求。然而,由于浏览器的同源策略限制,跨域请求需要特别处理。这篇博客文章可能详细介绍了如何在ExtJS应用中解决这个问题...

    nginx对http method的控制修改方法

    可以通过搜索`NGX_HTTP_*`这样的关键字来查找所有相关的条件判断语句,例如搜索`NGX_HTTP_TRACE`可以在`ngx_http_request.c`文件中找到限制性语句。 ##### 4. 重新编译Nginx 修改完成后,需要重新编译Nginx。在源码...

    JMeter入门:Java Request实例

    import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClients; public class MyJavaRequest { public String runRequest() throws Exception { HttpClient client = ...

    learn-vue-http-request

    在“learn-vue-http-request”项目中,我们主要探讨的是如何在Vue.js应用程序中进行HTTP请求,这是现代前端开发中的核心技能。Vue.js是一个轻量级的JavaScript框架,以其灵活性和可扩展性受到广大开发者喜爱。HTTP...

    import org.apache.http

    import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.ssl.SSLSocketFactory; import ...

    groovy http请求

    import org.apache.http.client.methods.HttpGet import org.apache.http.impl.client.CloseableHttpClient import org.apache.http.impl.client.HttpClients CloseableHttpClient httpClient = HttpClients....

    http 1.0 协议

    (request methods)进行扩展,可以被用于多种用途,比如命名服务器(name server)及分 布式对象管理系统。HTTP的一个特性是其数据表现类型允许系统的构建不再依赖于要传输 的数据。 HTTP自从1990年就在WWW上被广泛...

    2023.10.20使用特殊装饰器before-request进行登录session认证

    在Flask框架中,`before_request`装饰器是一种强大的工具,用于在每个HTTP请求处理之前执行某些预处理逻辑。在2023.10.20的这个项目中,我们可能正在构建一个Web应用程序,其中包含登录和session管理功能。`before_...

    ajax_transportation_methods

    request.open("GET", "http://abc.com", true); request.send(null); ``` **handleResponse()**函数会在状态改变时被调用,检查请求是否完成(readyState为4)且HTTP状态是否成功(status为200)。 **其他传输方法*...

    geoserver跨域问题解决文件

    <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers <param-name>cors.exposed.headers <param-value>Access-Control-Allow-Origin,...

    解决vue接口数据赋值给data没有反应的问题

    问题: 就是我在接口赋值给了data的...methods: { request() { this.$http.post('xxxxxxxxxxxx', {}, (res) => { if (is.object(res)) { if (res.status === 'succ') { this.slides = res.data.useddevice_list

    org.apache.http的jar包是使用HttpClient发送http请求需要的jar包

    httpmime-4.5.2.jar httpcore-4.4.4.jar httpclient-win-4.5.2.jar httpclient-cache-4.5.2.jar httpclient-4.5.2.jar 提供以上5个jar包

    servlet2.4doc

    Receives an HTTP HEAD request from the protected service method and handles the request. doOptions(HttpServletRequest, HttpServletResponse) - Method in class javax.servlet.http.HttpServlet Called by...

    完整的HttpClient的get和post使用方法实例(java源代码)

    import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; public class HttpClientGetExample { public ...

    httpclient4.5.5.chm

    org.apache.http.client.methods Standard HTTP method implementations. org.apache.http.client.params Deprecated. org.apache.http.client.protocol Client specific HTTP protocol handlers. org.apache....

    Flask中获取小程序Request数据的两种途径

    Flask的Request对象可以帮助开发者获取HTTP请求的数据。对于小程序而言,通常情况下,小程序会向服务器发送GET或POST请求,并附带所需的数据。开发者可以通过Flask内置的request对象的args属性获取GET请求中的数据,...

    Http发送Json请求

    import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils;

    requests:python请求的端口

    要求 请求:HTTP for Humans 描述 受Python请求库的启发,此gem提供了一种轻松的发出HTTP请求的方法。 用法 这是一个GET请求的示例: ... 如果您不是直接调用Requests.request而是直接指定HTTP方法,

Global site tag (gtag.js) - Google Analytics