http rfc解析

1 什么是http?

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

2.http工作流程
http是基于传输层的tcp协议的,而tcp协议是面向链接的端到端协议。因此,使用http协议传输前,首先应该建立tcp连接,首先就是tcp的三次握手可参考:TCP三次握手

在web上,http协议使用tcp协议而不是udp协议的原因在于,一个网页必须传送很多的数据,而且必须保证其数据的可靠考和安全性。tcp协议提供船速控制,按照顺序组织数据和错误纠错的一系列功能。

一个http操作可以将其分为四个步骤:

1.客户端与服务端需要建立连接,比如某个超级链接,这时http就开始了 
2.建立连接成功后,发送http请求 
3.服务器连接请求后,响应其响应的信息 
4.客户端接受到服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

3.http报文

HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下:

请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体

请求行以方法字段开始,后面分别是 URL 字段和 HTTP 协议版本字段,并以 CRLF 结尾。SP 是分隔符。除了在最后的 CRLF 序列中 CF 和 LF 是必需的之外,其他都可以不要。有关通用信息头,请求头和实体头方面的具体内容可以参照相关文件。

应答报文格式如下:

状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体

状态码元由3位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,而原因分析用来供用户使用。客户机无需用来检查或显示语法。有关通用信息头,响应头和实体头方面的具体内容可以参照相关文件。


4请求方式:

GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
常见状态码:

1xx:指示信息–表示请求已接收,继续处理 
2xx:成功–表示请求已被成功接收、理解、接受 
3xx:重定向–要完成请求必须进行更进一步的操作 
4xx:客户端错误–请求有语法错误或请求无法实现 
5xx:服务器端错误–服务器未能实现合法的请求

其中:

200 OK:请求成功(其后是对GET和POST请求的应答文档。)
301 Move Permanentry:永久重定向
302 Found :临时重定向
304 Not Modified :未按预期修改文档
401 Unauthonzed :表示请求未授权
403 Forbidden :服务器收到了请求但是拒绝服务
404 Not Found :服务器无法找到被请求的页面
503 Server Unavailable :服务器不能处理当前的客户端请求
505 HTTP Version Supported :服务端不支持当前http版本
注:找自百度百科,以及csdn博客

猜你喜欢

转载自blog.csdn.net/qq_38633310/article/details/87926112