加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

刨根问底HTTP和WebSocket协议

发布时间:2019-07-05 11:32:56 所属栏目:教程 来源:TheAlchemist
导读:那天和boss聊天,不经意间提到了Meteor,然后聊到了WebSocket,然后就有了以下对话,不得不说,看问题的方式不同,看到的东西也会大不相同。 A:Meteor是一个很新的开发框架,我觉得它设计得十分巧妙。 B:怎么个巧妙之处? A:它的前后端全部使用JS,做到

Status-Line的内容首先是协议的版本号,然后跟着返回码,最后是解释的内容,它们之间各有一个空格分隔,行的末尾以一个回车换行符作为结束。定义如下:

  1. Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF 

返回码

返回码是一个3位数,第一位定义的返回码的类别,总共有5个类别,它们是:

  1. - 1xx: Informational - Request received, continuing process 
  2.  
  3.   - 2xx: Success - The action was successfully received, 
  4.     understood, and accepted 
  5.  
  6.   - 3xx: Redirection - Further action must be taken in order to 
  7.     complete the request 
  8.  
  9.   - 4xx: Client Error - The request contains bad syntax or cannot 
  10.     be fulfilled 
  11.  
  12.   - 5xx: Server Error - The server failed to fulfill an apparently 
  13.     valid request 

RFC2616中接着又给出了一系列返回码的扩展,这些都是我们平时会用到的,但是那些只是示例,HTTP1.1不强制通信各方遵守这些扩展的返回码,通信各方在返回码的实现上只需要遵守以上边定义的这5种类别的定义,意思就是,返回码的第一位要严格按照文档中所述的来,其他的随便定义。

任何人接收到一个不认识的返回码xyz,都可以把它当做x00来对待。对于不认识的返回码的响应消息,不可以缓存。

Header

RFC2616中定义了4种header类型,在通信各方都认可的情况下,请求头可以被扩展的(可信的扩展只能等到协议的版本更新),如果接收者收到了一个不认识的请求头,这个头将会被当做实体头。4种头类型如下:

1、通用头(General Header Fields):可用于request,也可用于response的头,但不可作为实体头,只能作为消息的头。

  1. general-header = Cache-Control            ; Section 14.9 
  2.               | Connection               ; Section 14.10 
  3.               | Date                     ; Section 14.18 
  4.               | Pragma                   ; Section 14.32 
  5.               | Trailer                  ; Section 14.40 
  6.               | Transfer-Encoding        ; Section 14.41 
  7.               | Upgrade                  ; Section 14.42 
  8.               | Via                      ; Section 14.45 
  9.               | Warning                  ; Section 14.46 

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读