HTTP协议

HTTPHyperText Transfer Protocol,超文本输传协议)是用于从www(万维网)服务器传输超文本到本地浏览器的传送协议,它可以使浏览器更加高效,使用网络传减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以前哪部份内容首先显示(如文本先于图形)等。目前,HTTP协议有两个版本:HTTP1.0HTTP1.1

HTTP是应用层协议,是建立在TCP协议基础之上的(TCP是一个底层协议)。HTTP协议是一个基于“请求/响应”模式的、无状态的协议。

HTTP消息内容

浏览器和WEB服务器之间会通过HTTPInternet上进行数据的发送和接收,这些数据也被称为HTTP消息(Message)。HTTP消息可以是客户端到服务器的请求消息,也可是的服务器到客户端的响应消息。

请求消息与响应消息都是由开始行、消息报头(可选)、空行(只有CRLF的行)、消息正文(可选)组成的。

                       message = start-line                                   

                                *message-header                            

                                CRLF                                    

                                [message-body]                             

HTTP消息由开始行(start-line)、消息报头(message-header)、消息正文(message-body3部分构成。

对于请求或者响应,开始行有所不同。对于请求消息,“开始行”就是请求行(request-line);对于响应消息,“开始行”就是状态行(status-line)。

                           start-line = request-line | status-line                   

“消息报头”就是前面所说的请求和响应的HTTP消息报头,“消息正文”就是HTML文档或者图片等文件,它们之间由一个空行隔开。

1.HTTP请求内容

     客户端通过发送HTTP请求向服务器请求对资源的访问,这时,HTTP请求由下面的内容(HTTP消息)组成

                              message = request - Line                          

                                      *message - header                       

                                       CRLF                                

                                       [message - body]                       

 

请求行

  请求行(request - line)的结构如下:

   Method request-URI HTTP-Version CRLF                                    

Method:表示HTTP的请求方法,你如:GETPOST等,注意需要大写

request-URI:表示统一资源标识符

HTTP-Version:表示请求的HTTP协议版本,HTTP/1.1 和 HTTP/1.0

CRLF:表示回车换行(实际上我们是无法阅读出来的换行标志)

 

HTTP请求方法

   常见的HTTP请求的方法就是GETPOSTHEAD,当然也包括其它方法:

       GET:通过请求地址获得资源

HEAD:类似于GET,但是不返回正文信息,用于检查对象是否存在,以及得到对象的元数据。

POST:通过添加新的内容进行请求资源

PUT:用于修改某个内容

DELETE:用于删除某个内容

OPTIONS:询问可以执行的有哪些方法

TRACE:用于远程诊断服务器

 

2.HTTP响应内容

服务器到客户端请求做出响应,这时,HTTP响应由下面的内容(HTTP消息)组成。

                              message = Status - Line                           

                                      *message - header                       

                                       CRLF                                

                                       [message - body]                       

 

状态行

状态行(Stauts-Line)的结构如下:

 HTTP-Version   Status-Code  Reason-Phrase CRLF

HTTP-Version:表示请求的HTTP协议版本,HTTP/1.1 和 HTTP/1.0

Status-Code:表示服务器发回给客户端的状态代码

Reason-Phrase:表示与状态代码相对应的简短文字描述

CRLF:表示回车换行(实际上我们是无法阅读出来的换行标志)

 

状态代码

状态代码(Status-Code)由3位数字组成,表示请求是否被理解或被满足。状态代码的第一个数字定义了响应的类别(范围是1-5),后面两位数字没有代表任何具体的分类。

1XX:指示信息。表示请求已经收到,继续处理

2XX:成功。表示请求已经被成功处理,并已经被理解和接受

3XX:重定向。表示请求已经收到,但必须采取进一步行动才能完成请求

4XX:客户端错误。请求中包括了有错误的语法,或者不能被完成,或者资源不存在

5XX:服务器错误。服务器出现了异常情况,尽管请求是正确的

 

原因短语

原因短语(Reason-Phrase)使用短语简单地说明了状态代码所要表达的意思。例如:

  200:表示请求成功处理

  206:表示使用了Range进行分段传送

  404:表示请求的资源没有找到

  500:表示服务器内部出现了异常情况



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值