HTTP协议

来源:互联网 发布:淘宝上图片模糊怎么办 编辑:程序博客网 时间:2024/06/07 07:19

   Http协议是我们做Web开发时经常会用到的一个协议,今天我就来跟大家一起对Http协议进行一下简单的讲解:

一.概念

  HTTP协议属于TCP/IP模型中的应用层协议,而两个应用程序(我们这里指的就是浏览器与服务器)之间要进行互相通信,首先得建立TCP连接,然后浏览器才能向服务器发送请求信息,服务器在接受到请求信息后,返回相应的应答信息,浏览器接收到来自服务器的应答信息后,对这些数据进行解释执行。

 

二.HTTP流程

  对于我们常用的HTTP有两个版本,一个是HTTP1.0,一个是HTTP1.1。

  HTTP1.0是每一个请求都需要一个单独的TCP连接,而HTTP1.1是一个连接可以发送多个请求。如下图:

        

  接下来我们对这四个过程(建立连接,发起请求,响应请求和关闭连接)进行一下讲解:

1.建立连接

  建立连接就是在地址栏中输入URL地址。

  HTTP URL的格式为:

   

  例如:

www.baidu.com(即http://www.baidu.com/)

http://192.168.24.188:8080/index.jsp

http://192.168.24.188/index.jsp(即http://192.168.24.188:80/index.jsp)

 

2.发起请求

  一次完整的http请求消息包括:一个请求行(即开始行)、消息报头以及请求正文,而消息报头和请求正文可以没有,消息报头和请求正文间有一个空行(空行用CRLF表示。  

  我们常用的请求方式有GET和POST请求,下面我们来看一下这两种方式的请求示例:

  GET请求:

  

  POST请求:

   

  我来给大家讲解一下请求的三个组成部分:

  1)请求行

  格式:Method Request-URI HTTP-Version CRLF

  例如上面的POST /reg.jsp HTTP/1.1和GET/reg.jsp?user=zhaodandan&pwd=1234 HTTP/1.1

  2)消息报头(可选)

  HTTP消息报头包括普通报头,请求报头,响应报头和实体报头。

  每一个报头域都是由名字+“:”+值组成,消息报头域的名字是大小写无关。

  请求中的消息报头当然就是其中的请求报头啦,具体的关于消息报头的讲解在以后再讲解。

  3)请求正文(可选)

  请求正文中可以包含提交的数据,例如参数和表单。

 

3.响应请求

  在接收和解释请求消息后,服务器会返回一个HTTP响应消息,与HTTP请求类似,HTTP响应也由三部分组成:状态行(开始行),消息报头,响应正文。

  我们先来看一个响应请求的实例(GET和POST请求的响应是一样的)

   

  同样,我们来讲解一下它的三个组成部分:

  1)状态行

  它跟请求行一样,其实都是开始行。

  格式:HTTP-Version Status-Code Reason-Phrase CRLF

  其中的Status-Code是服务器发回的响应代码,而Reason-Phrase是对Status-Code的文本描述。

  我们先来看一下常用的Status-Code(状态代码)与Reason-Phrase(状态描述):

  状态代码的第一个数字定义了响应的类别,后面两位数字没有具体的分类。       

  -1xx:指示信息--表示请求已接收,继续处理

  -2xx:成功--表示请求已被成功接收、理解、接受(如200 OK就是客户端请求成功)

  -3xx:重定向--要完成请求必须进行更进一步的操作

  -4xx:客户端错误--请求有语法错误或请求无法实现(如404 Not Found即为请求资源不存在)

  -5xx:服务器端错误--服务器未能实现合法的请求(如500 Internal Server Error为服务器发生不可预期的错误)

  2)消息报头

  响应请求的消息报头即为消息报头里的响应报头。

  3)响应正文就是服务器返回的资源的内容。

 

  当响应请求完成后即关闭连接。

原创粉丝点击