http请求

GET,POST,PUT,DELETE的区别

*爱你&永不变心* 提交于 2019-12-10 08:30:11
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的 查 , 改 , 增 , 删 4个操作。到这里,大家应该有个大概的了解了,GET一般用于 获取/查询 资源信息,而POST一般用于 更新 资源信息。    1 .根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的 。   (1).所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。   * 注意:这里安全的含义仅仅是指是非修改信息。   (2).幂等的意味着对同一URL的多个请求应该返回同样的结果。这里我再解释一下 幂等 这个概念: 幂等 (idempotent、idempotence)是一个数学或计算机学概念,常见于抽象代数中。   幂等有一下几种定义:   对于单目运算,如果一个运算对于在范围内的所有的一个数多次进行该运算所得的结果和进行一次该运算所得的结果是一样的,那么我们就称该运算是幂等的。比如 绝对值运算 就是一个例子,在实数集中,有 abs(a) = abs(abs(a))

REST模式中HTTP请求方法(GET,POST,PUT,DELETE)

故事扮演 提交于 2019-12-10 08:29:57
一直在测试REST模式的WEB SERVICE接口,客户端的HTTP的请求方式一般分为四种:GET、POST、PUT、DELETE,这四种请求方式有什么不同呢。简单的说,GET就是获取资源,POST就是创建资源,PUT就是更新资源,DELETE就是删除资源。具体来说:   PUT:PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,资源不会增加。   DELETE:DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。   GET:GET操作是安全的。所谓安全是指不管进行多少次操作,资源的状态都不会改变,GET只是访问和查看资源。   POST:操作不是安全的,每次请求都会创建资源,当我们多次发出POST请求后,其结果是创建出了多个资源。还有一点需要注意的就是,创建操作可以使用POST,也可以使用PUT,区别在于POST 是作用在一个集合资源之上的(/uri),而PUT操作是作用在一个具体资源之上的(/uri/xxx),再通俗点说,如果URL可以在客户端确定,那么就使用PUT,如果是在服务端确定,那么就使用POST,比如说很多资源使用数据库自增主键作为标识信息,而创建的资源的标识信息到底是什么只能由服务端提供

HTTP POST GET 本质区别详解

这一生的挚爱 提交于 2019-12-10 08:27:38
一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交 Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是 GET,POST,PUT,DELETE URL全称是资源描述符,我们可以这样认 为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的 查 , 改 , 增 , 删 4个操作。到这里,大家应该有个大概的了解了,GET一般用于 获取/查询 资源信息,而POST一般用于 更新 资源信息( 个人认为这是GET和POST的本质区别,也是协议设计者的本意,其它区别都是具体表现形式的差异 )。    根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的 。   1.所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。   * 注意:这里安全的含义仅仅是指是非修改信息。   2.幂等的意味着对同一URL的多个请求应该返回同样的结果。这里我再解释一下 幂等 这个概念:    幂等 (idempotent、idempotence)是一个数学或计算机学概念,常见于抽象代数中。   

综合技术 --HTTP协议理解

不想你离开。 提交于 2019-12-10 08:26:58
HTTP是一个客户端和服务器端请求和应答的标准。客户端是终端用户,服务器端是网站。通过使用web浏览器,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。 通常由http客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发过来的请求。一旦收到请求,服务器向客户端发回一个状态和响应的消息。消息的消息体可能是请求的文件、错误信息或者其它的一些信息。HTTP使用TCP连接。 HTTP是客户端浏览器与web服务器之间的应用层通信协议。我们在浏览器的地址栏里输入的网址叫做URL(统一资源定位符)。每个网页都有一个internet地址,当我们在浏览器的地址框中输入一个URL时,URL就确定了我们要浏览的地址。浏览器通过HTTP协议,将web服务器上站点的网页代码提取出来并翻译成显示的网页。 客户端向服务器发送一个请求,请求头包括 请求的方法(GET或POST)、URL和客户信息(参数)。服务器以一个状态行作为响应,响应的内容包括 成功、错误编码和客户端请求的消息内容。 HTTP消息包括 一个起始行、一个或多个头域、一个指示头域结束的空行、可选的消息体 组成。HTTP的头域包括 通用头、请求头、响应头和实体头 四个部分。每个头域由一个 域名、冒号(:)和 域值 三个部分组成。 运作方式 基于HTTP协议的客户

关于 HTTP GET/POST 请求参数长度最大值的一个理解误区

蓝咒 提交于 2019-12-10 08:00:01
刚看到群里又有同学在说 HTTP 协议下的 Get 请求参数长度是有大小限制的,最大不能超过 XX,而 Post 是无限制的, 看到这里,我想他们定是看多了一些以讹传讹的博客或者书籍, 导致一种理解上的误区: 1、首先即使有长度限制,也是限制的是整个 URI 长度,而不仅仅是你的参数值数据长度。 2、HTTP 协议从未规定 GET/POST 的请求长度限制是多少。 The HTTP protocol does not place any a priori limit on the length of a URI. Servers MUST be able to handle the URI of any resource they serve, and SHOULD be able to handle URIs of unbounded length if they provide GET-based forms that could generate such URIs. A server SHOULD return 414 (Request-URI Too Long) status if a URI is longer than the server can handle (see section 10.4.15). Note: Servers ought to be

HTTP协议简单了解

断了今生、忘了曾经 提交于 2019-12-10 05:03:47
简单了解一下http协议 它分为请求和响应两部分 请求 请求行 GET/POST/OPTIONS/DELETE/PUT 路径?参数 HTTP /1.1 请求头 Host目标主机名 User-Agent客户机环境信息 Cookie客户机标识 Referer请求来自于哪个url Accept-*客户机信息 X-Forwarded-For客户机来源ip Origin请求来自于哪个站点 Content-Type 请求的数据类型 请求内容 响应 响应行 HTTP/1.1 101/200/301/302/403/404/500/502 OK 101websocket使用状态码 200正常访问 301永久转移 302临时转移 400段 客户端错误 400 bad request 请求错误 403拒绝访问 一个是页面没有首页文件,也没有开启列目录;或者是目录禁止任何人访问 404没有这个资源 500段 服务端错误(代码出错,中间件出错) 502 bad gateway 网关出错 503 service Unavailable 服务不可用 504 gateway timeout 网关超时 响应头 Server中间件类型 Content-Type响应内容类型 Set-Cookie服务器设置的cookie X-Powered-By服务器使用的脚本语言 响应内容 来源: CSDN 作者: xstdys

HTTP协议篇(一):多路复用、数据流

浪子不回头ぞ 提交于 2019-12-10 04:39:00
1.管道机制、多路复用 1.1 管道机制(Pipelining) HTTP 1.1 引入了管道机制(Pipelining),即客户端可通过同一个TCP连接同时发送多个请求。如果客户端需要请求两个资源,以前的做法是在同一个TCP连接里面,先发送A请求,然后等待服务器做出回应,收到后再发出B请求;而管道机制则允许浏览器同时发出A请求和B请求,但是服务器还是按照顺序,先回应A请求,完成后再回应B请求。 1.2 多路复用(Multiplexing) 虽然 HTTP 1.1 默认启用长TCP连接,但所有的请求-响应都是按序进行的(这里的长连接可理解成半双工协议。即便是HTTP 1.1引入了管道机制,也是如此)。复用同一个TCP连接期间,即便是通过管道同时发送了多个请求,服务端也是按请求的顺序依次给出响应的;而客户端在未收到之前所发出所有请求的响应之前,将会阻塞后面的请求(排队等待),这称为"队头堵塞"(Head-of-line blocking)。 HTTP/2复用TCP连接则不同,虽然依然遵循请求-响应模式,但客户端发送多个请求和服务端给出多个响应的顺序不受限制,这样既避免了"队头堵塞",又能更快获取响应。在复用同一个TCP连接时,服务器同时(或先后)收到了A、B两个请求,先回应A请求,但由于处理过程非常耗时,于是就发送A请求已经处理好的部分, 接着回应B请求,完成后

http协议进阶(一)HTTP概述

佐手、 提交于 2019-12-10 03:54:53
参考书籍——《HTTP权威指南》 1、web客户端和服务器 http客户端发出请求,其中包含请求内容,发给服务器,服务器再返回内容中回送请求的数据,http客户端和服务器构成了万维网的基本组件 我们常说的客户端,就是web浏览器,比如微软的IE、Google的chrome,火狐的Firefox等,浏览器向服务器发送http请求对象,并将对象显示在你的屏幕上 2、资源 web服务器是web资源的宿主,源头;最简单的web资源就是服务器文件系统中的静态文件,其中可能包含很多内容:文本文件、HTML文件、word文件、图片文件、Adobe的acrobat文件等 但资源不局限于静态文件,它还可以根据需要生成软件程序(比如照相机中活生生的照片、股票交易、房产交易的数据库、在线商店中的礼物等等) 总之,所有类型的内容都来源于资源。。。 2.1 媒体类型 互联网上有数千种不同的数据类型,http给每种需要通过http传输的对象都打上了MIME类型(MIME type)的数据格式标签 MIME:多用途英特网邮件扩展 web浏览器每次从服务器取回一个对象时,会先查看其MIME类型,看看能否处理该类型;大多数浏览器都可以处理数百种常见的对象类型 MIME类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分隔,例如 HTML格式的文本文档:text/html

http协议

◇◆丶佛笑我妖孽 提交于 2019-12-10 03:22:56
HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。 HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。 http请求-响应模型.jpg 主要特点 1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 3.无连接

Fiddler抓包工具使用详解

故事扮演 提交于 2019-12-10 02:52:11
一、Fiddler简介 Fiddler是最强大最好用的Web调试工具之一, 它能记录所有客户端和服务器的http和https请求。允许你监视、设置断点、甚至修改输入输出数据。Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展。换言之,你对HTTP 协议越了解,你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能帮助你了解HTTP协议。Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。 二、Fiddler的工作原理 Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。 当Fiddler退出的时候它会自动注销, 这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。 解决的办法是重新启动下Fiddler。 个人理解:fiddler是一个抓包工具,当浏览器访问服务器会形成一个请求,此时,fiddler就处于请求之间,当浏览器发送请求,会先经过fiddler,然后在到服务器;当服务器有返回数据给浏览器显示时,也会先经过fiddler,然后数据才到浏览器中显示,这样一个过程,fiddler就抓取到了请求和响应的整个过程。 正常退出方式: Fiddler界面 三、http协议介绍