HTTP协议学习一:消息类型

RFC2616文档前面有三章,定义了一些符号,protocol的规范等等等等。可是对于我这种初学者而言真是云里雾里啊,看了好几个晚上,对照着抓的HTTP的包,仍然不知道哪是哪。于是决定干脆直接跳到第四章了:Message Type,消息类型。

HTTP的消息一般就是分两种,请求(request)和回应(response),你个人电脑想要从互联网上找到需要的消息,就要发送一个请求包,描述一下你想去哪找到什么样的东西。然后网上某个角落的某个接收到你的请求的server就会给回应了,找到了有回应,没有找到也要有回应,告诉你东西没有啦,如果有在哪块啦。或者直接请求的最终网址不可达,中间转告的服务器也要告诉你服务器不可达,什么原因,都是有规定的。不过对于什么情况给予什么回应,此乃后话,总之就是会有回应。

请求类型的消息和回应类型的消息结构当然有那么些区别,具体分别在第五章和第六章有说。但是他们也一定是有共同点的:首先都有一个起始行,然后是零个或多个头域(header),然后一个空行,这个空行就代表头域的结束。空行之后就是真正要传送的消息实体了。
generic-message = start-line
                                *(message-header  CRLF)
                                 CRLF   #\r\n
                                 [ message-body ]

不过一般HTTP会规定如果空行出现在起始行的前面,那就会被忽略了,一个包总不能什么都没有吧。

起始行就变化多端,与消息类型使用的方法都有关系。不过头域又还是有一些共同之处的。

头域又分四种,通用头域,请求头域,回应头域,还有实体头域(entity-header), 每一个头域的结构都是:"域名(field name) : 域值", 域名不区分大小写。冒号后面最好加个空格。如果需要换行,则在下一行前加空格或tab。还可为域值用分隔符包起来。如括号,星号。如果同一个field name后面有引号逗号组成的一堆值,那就是相同域名组合到一起啦。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值