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)响应正文就是服务器返回的资源的内容。
当响应请求完成后即关闭连接。
- HTTP协议
- http协议
- HTTP协议
- HTTP协议
- HTTP协议
- http协议
- HTTP协议
- HTTP协议
- HTTP协议。。。
- HTTP协议
- HTTP协议
- HTTP协议
- HTTP协议
- HTTP协议
- http协议
- HTTP协议
- http协议
- HTTP协议
- chrome启动参数设置
- JAVA编程实践总结
- Google、 百度、谷歌的最本质区别?
- 软件开发人员的“七重苦”(1)
- ruby读取excel中文内容 转码后识别不了中文
- HTTP协议
- 将Apache2手动安装成Windows的服务
- jquery mobile 样式
- 840个日语惯用句型 学习笔记~20
- Java范型深入理解,利用反射穿透编译器忽略范型
- Java Web快速开发框架 ---- JSPX
- 学习资料
- Designing for Touch Screen
- Oracle 11g R2 OEM无法连接到数据库