http 协议的理解与认识

HTTP 的特性

  1. HTTP 协议构建于 TCP/IP 协议之上,是一个应用层协议,默认端口号是 80。
  2. HTTP 是无连接无状态的。

HTTP 请求

HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:状态行、请求头(Request Header) 、请求正文。

<method> <request-URL> <version>
<headers> 

<entity-body>
  1. 状态行包含:请求方法/URI协议/版本。根据HTTP标准,HTTP请求可以使用多种请求方法。例如:GET、POST、PUT、DELETE。
  2. 请求头包含:许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。
  3. 请求正文中包含:客户提交的查询字符串信息。

HTTP 请求方法详述

Http定义了与服务器交互的不同方法(如下),最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL统一资源定位符我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GETPOSTPUTDELETE就对应着对这个资源的查,改,增,删4个操作。

  1. GET 请求获取由Request-URI所标识的资源。
  2. POST 在Request-URI所标识的资源后附加新的数据。
  3. PUT 请求服务器存储一个资源,并用Request-URI作为其标识。
  4. DELETE 请求服务器删除由Request-URI所标识的资源。
  5. HEAD 请求获取由Request-URI所标识的资源的响应消息报头。
  6. OPTIONS 请求查询服务器的性能,或查询与资源相关的选项和需求。
  7. TRACE 请求服务器回送收到的请求信息,主要用语测试或诊断。

HTTP中GET方法与POST方法的区别

根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。

  1. 所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。 * 注意:这里安全的含义仅仅是指是否修改信息。
  2. 幂等的意味着对同一URL的多个请求应该返回同样的结果。
幂等(idempotent、idempotence)是一个数学或计算机学概念,常见于抽象代数中。幂等有一下几种定义:
1. 对于单目运算,如果一个运算对于在范围内的所有的一个数多次进行该运算所得的结果和进行一次该运算所得的结果是一样的,那么我们就称该运算是幂等的。比如绝对值运算就是一个例子,在实数集中,有abs(a)=abs(abs(a))。 
2. 对于双目运算,则要求当参与运算的两个值是等值的情况下,如果满足运算结果与参与运算的两个值相等,则称该运算幂等,如求两个数的最大值的函数,有在在实数集中幂等,即max(x,x) = x。

根据HTTP规范,POST表示可能修改变服务器上的资源的请求。

改变服务器上的资源这件事往往是有副作用的,不幂等的。不幂等也就意味着不能随意多次执行。因此也就不能缓存。

区别总结:

  1. GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=April&type=1。当数据包含中文、url等都需要作为 URI组件进行编码。POST把提交的数据则放置在是HTTP包的包体中。
  2. 传输大小限制的不同。GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。实际操作中一般GET方式提交的数据保持在1024字节以内。POST是没有大小限制的。起限制作用的是服务器的处理程序的处理能力。
  3. POST的安全性要比GET的安全性高。比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为页面有可能被浏览器缓存,或者其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。

Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",实质上,GET和POST只是发送机制不同,并不是一个取一个发!

HTTP 响应

HTTP 响应与 HTTP 请求相似,HTTP响应也由3个部分构成,分别是: 状态行、响应头(Response Header)、响应正文。

HTTP 状态码

常见的状态码有如下几种:

  1. 200 OK 客户端请求成功
  2. 301 Moved Permanently 请求永久重定向
  3. 302 Moved Temporarily 请求临时重定向
  4. 304 Not Modified 文件未修改,可以直接使用缓存的文件。
  5. 400 Bad Request 由于客户端请求有语法错误,不能被服务器所理解。
  6. 401 Unauthorized 请求未经授权。这个状态代码必须和WWW-Authenticate报头域一起使用
  7. 403 Forbidden 服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因
  8. 404 Not Found 请求的资源不存在,例如,输入了错误的URL
  9. 500 Internal Server Error 服务器发生不可预期的错误,导致无法完成客户端的请求。
  10. 503 Service Unavailable 服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容