HTTP相关基础概念和错误码

基本概念

  • 代理:位于客户端和服务器之间的HTTP中间实体
  • 缓存:HTTP的仓库,使常用的页面的副本可以保存在离客户端更近的位置
  • 网关:链接其他应用程序的特殊的web服务器
  • 隧道:对HTTP通信报文进行盲转发的特殊代理
  • Agent代理:发起HTTP请求的半智能web客户端

代理

代理的原理

代理位于客户端和服务器之间,接受了所有的HTTP的请求,并将这些请求发送给服务器(也可能会对请求进行修改然后再进行发送)。在安全的角度来看,通常会将代理作为转发所有的web流量的可信的中间节点进行使用,因为代理可以对一些请求和响应进行过滤。

缓存
web缓存或是代理缓存,是一种特殊的HTTP代理服务器,可以将进过代理传送为常用文档复制保存起来,下一次请求同一个文档就可以享受缓存的私有副本所提供的服务了。

保存常用的文档的副本来提高性能的代理缓存

网关
也是一种特殊的服务器,作为其他服务器的中间实体来使用,通常的作用是将HTTP流量转换成其他的协议。网关在接受请求的时候,就好像自己是自愿服务器一样,客户端可能并不知道自己是在和一个网关进行通信。

HTTP/FTP网关

隧道

隧道是建立起来后,就会在两条链接之间对原始数据进行盲转发的HTTP应用程序。HTTP隧道通常用来在一跳或是多条HTTP链接上转发非HTTP数据,而且在转发的时候是不会进行数据的窥视的。
我们经常使用HTTP隧道来:通过HTTP连接承载加密的安全套接字层流量,这样的话SSL流量就可以穿过仅仅允许web流量通过的防火墙了。

隧道可以在非HTTP网络上转发数据

Agent代理

用户Agent代理是代表用户发起HTTP请求的客户端程序,所有发布web请求的应用程序都是HTTP Agent代理。比如:有些自己会在web上闲逛的自动Agent代理,可以在无人监听的情况下发布HTTP的事物或是获取内容。

自动搜索引擎的网络蜘蛛,可以从世界范围获取web页面

HTTP报文

举个栗子:如果说HTTP是因特网的信使,那么HTTP就是它用来搬东西的包裹。
HTTP报文是在HTTP应用程序之间发送的数据块,这些数据块以一些文本形式的元数据开头,这些信息描述了报文的内容和含义。

报文流入源服务器并回流回客户端

报文的组成部分

报文由三部分组成:对报文进行描述的起始行(有首部header,以及可选的数据主体body)

HTTP报文的三部分

报文的语法
HTTP报文分类:请求报文(request message)和响应报文(response message
请求报文:向web服务器请求一个动作
响应报文:会将请求的结果返回给客户端

请求和响应报文的HTTP事务

方法:
GET:从服务器获取一份文档
HEAD:只从服务器获取文档的首部
POST:向服务器发送需要处理的数据
PUT:将请求的主体部分存储到服务器上
TRACE:对可能经过代理服务器传送到服务器上的报文进行追踪
OPTIONS:决定可以在服务器上执行哪些方法
DELETE:从服务器上删除一份文档

GET
客户端用GET方法发送一次HTTP的请求

GET示例

HEAD
HEADGET的请求行为很类似,但是服务器仅仅会返回首部,不会返回实体的主体部分。
使用HEAD的应用场景:

  • 在不获取资源的情况下了解资源的情况(判断类型)
  • 通过查看响应中的状态码,看看某个对象是否存在
  • 查看首部,看一下资源是否被修改了
HEAD示例

PUT(更新)
GET从服务器读取文档相反,PUT方法是向服务器写入文档。PUT的本意是让服务器用请求的主体部分创建一个由所请求的URL命名的新文档。如果原来的URL已经存在的话,就用这个主体来代替。

PUT示例

POST
POST方法的初衷是向服务器发送数据,实际上我们用它来支持HTML的表单。

POST示例

TRACE
当客户端发送一个请求的时候,这个请求可能要穿过防火墙、代理、网关或是其他的一些应用程序。在这个过程中,每一个节点都可能改变原始的HTTP请求,TRACE方法允许客户端在最终将请求发给服务器的时候,看看它变成了什么样。

TRACE示例

OPTIONS
OPTIONS方法请求web服务器告知其支持的各种功能,可以查询浏览器支持哪些方法,或者对某些资源支持哪些方法。

OPTIONS

DELETE
DELETE所做的就是删除指定服务器删除请求URL所指定的资源,但是客户端是无法确定删除的操作一定会被执行,因为HTTP规范允许服务器在不告知客户端的情况下撤销请求。

DELETE示例

状态码

100~199 --信息性状态码

信息性状态码

200~299 --成功状态码

成功的状态码

300~399-- 重定向状态码
重定向状态码要么告知客户端使用替代未知来访问客户端感兴趣的资源,要么就是提供一个替代的响应而不是资源的内容。如果资源被移动了,可以发送一个重定向的状态码和一个可选的location首部来告诉客户端资源已经被移动了,以及现在在哪里可以找到。

将请求重定向到新的位置

304:比较常用的,比如说客户端发送了一个特殊的If-Modified-Since首部,在这个日期之后,如果这个文档没有进行修改过,服务器就会返回一个304的状态码。

重定向为使用本地副本的请求
重定向状态码
重定向的状态码

其实302,303,307在功能上是有一些交叉的,出现这么多主要是为了兼容HTTP的版本
400~499客户端的错误

客户端错误
客户端错误

500~599服务器错误状态码


服务器错误
服务器错误
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351

推荐阅读更多精彩内容