http的报文的请求方法及状态响应码

前言

一次http请求通常包含以下几个步骤:

1、建立或处理连接,web浏览器和web服务器建立相应的TCP连接。
2、发送请求:web浏览器向web服务器发送http请求,如:GET/sample/hello.jsp HTTP/1.1。
3、处理请求:用于对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息;
4、访问资源,访问获取请求报文中请求的资源;
5、构建响应报文;
6、发送响应报文;
7、记录请求日志;

上述请求过程中涉及到了http通信的两个报文:request和respond报文。

  • 报文格式
    request请求报文的格式类似于:

<method> <URL> <VERSION>
<headers>
<blank-line>
<entity-body>

response响应报文的格式类似于:

<version> <status> <reason-phrase>
<headers>
<blank-line>
<entity-body>

上述格式中各字段的解释为:

<method>:请求方法,标明客户端希望服务器对资源执行的动作,如GET、POST、HEAD等;
<version>:http服务的版本,格式通常为:HTTP/<major>.<minor>;
<status>:状态响应码,其格式通常为三位数字,如200,301,302,404等,每一个状态响应码标记请求处理过程中发生的情况;
<reason-phrase>:状态响应码所标记的状态的简要描述;
<headers>:由每个请求或响应报文包含的任意首部组成的,其首部格式类似于:Connection: Keep-Alive;
<blank-line>:在编写完最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。
<entity-body>:请求报文中附加的数据或响应时附加的数据;

本文着重介绍http报文的请求方法、状态响应码。

报文请求方法

http协议的请求方法包括:GET、POST、PUT、DELETE、OPTIONS、TRACE、CONNECT,这8个请求方法的作用为:

GET:向服务器请求访问获取特定的资源;
POST:向指定资源提交数据进行处理请求,如提交表单或上传文件等;数据包含在请求体中,POST请求可能会导致新的资源的创建或已有资源的修改;
PUT:向指定资源位置上传数据;
DELETE:请求服务器删除Request-URI所标识的资源内容;
TRACE:回显服务器收到的请求,主要用于测试或诊断。
CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

虽然http协议中的请求方法有8种之多,但是实际上常用的只有GET和POST,其他的请求方式基本都可以通过这两种方式间接实现。

在实验中若要测试发送GET和POST请求,可telnet访问相应IP地址和端口,然后发送相应报文格式来查看对应的结果,如:

GET /http/demo1.php HTTP/1.1 #<method> <URL> <VERSION>
Host:localhost  #<headers>
空行 
回车
HTTP/1.1 200 OK  #<version> <status> <reason-phrase>
Date: Thu, 08 Dec 2016 03:37:44 GMT
Server: Apache/2.4.18 (Ubuntu)  #<headers>
Content-Length: 5  #<headers>
Content-Type: text/html; charset=UTF-8  #<headers>
空行
demo1  #<entity-body>

状态响应码

状态响应码是http请求处理返回的结果状态标识,属于响应报文中的内容,熟知常见的状态响应码能帮助我们快速定位故障及进行相应的排错,状态码的类型大体可分为下面几类:

1xx:100-101,代表请求已被接受,需要继续处理,除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应;
2xx:200-206, 代表请求已成功被服务器接收、理解、并接受;
3xx:300-305, 这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向;
4xx:400-415, 代表了客户端看起来可能发生了错误,妨碍了服务器的处理;
5xx:500-505, 代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。;

常见的状态响应码及解释如下:

200: 成功,请求的所有数据通过响应报文的entity-body部分发送;OK
301: 请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明了资源现在所处的新位置;Moved Permanently
302: 与301相似,但在响应报文中通过Location指明资源现在所处临时新位置; Found
304: 客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端;Not Modified
401: 需要输入账号和密码认证方能访问资源;Unauthorized
403: 请求被禁止;Forbidden
404: 服务器无法找到客户端请求的资源;Not Found
499:nginx自定义的,客户端关闭连接;
500: 服务器内部错误;Internal Server Error
501:Not Implemented,服务器不支持当前请求所需要的某个功能,当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。
502: 代理服务器从后端服务器收到了一条伪响应;Bad Gateway
503:Service Unavailable,由于临时的服务器维护或者过载,服务器当前无法处理请求;
504:Gateway Time-out,504错误是(网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。

其他常见的状态码可参考:
https://blog.csdn.net/helin916012530/article/details/29842595
499状态码:https://www.cnblogs.com/pangguoping/p/5603049.html

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