Http协议的理解
2016-01-14 17:50
543 查看
一、简单介绍
Http是属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。一个完整的Http协议包括客户端到服务器的请求和服务器对客户端的响应。目前在WWW中使用的有HTTP/0.9版,HTTP/1.0版,HTTP/1.1版。
二、客户端到服务器发送Get请求
http请求由三部分组成,分别是:请求行、消息报头、请求正文。
1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF
其中 Method表示请求方法;
Request-URI是一个统一资源标识符;
HTTP-Version表示请求的HTTP协议版本;
CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。
常用的请求有:POST、GET、HEAD.
2、应用举例:
GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,eg:GET /form.html HTTP/1.1 (CRLF)
三、响应
在接收和解释请求消息后,服务器返回一个HTTP响应消息。
HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文
1、状态行格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
其中,HTTP-Version表示服务器HTTP协议的版本;
Status-Code表示服务器发回的响应状态代码;
Reason-Phrase表示状态代码的文本描述。
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求
常见状态代码、状态描述、说明:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
eg:HTTP/1.1 200 OK (CRLF)
3、图片展示(Get请求)
Http是属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。一个完整的Http协议包括客户端到服务器的请求和服务器对客户端的响应。目前在WWW中使用的有HTTP/0.9版,HTTP/1.0版,HTTP/1.1版。
二、客户端到服务器发送Get请求
http请求由三部分组成,分别是:请求行、消息报头、请求正文。
1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF
其中 Method表示请求方法;
Request-URI是一个统一资源标识符;
HTTP-Version表示请求的HTTP协议版本;
CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。
常用的请求有:POST、GET、HEAD.
2、应用举例:
GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,eg:GET /form.html HTTP/1.1 (CRLF)
三、响应
在接收和解释请求消息后,服务器返回一个HTTP响应消息。
HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文
1、状态行格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
其中,HTTP-Version表示服务器HTTP协议的版本;
Status-Code表示服务器发回的响应状态代码;
Reason-Phrase表示状态代码的文本描述。
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求
常见状态代码、状态描述、说明:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
eg:HTTP/1.1 200 OK (CRLF)
3、图片展示(Get请求)
相关文章推荐
- win10 vm虚拟机 报错 设备vmnet0上的网络桥接当前未在运行
- C#WebService 客户端通过Http调用请求(转)
- 写给那些让我糊里糊涂的HTTP、TCP、UDP、Socket
- [网络基础]网络基础篇
- 【HttpClient4.5中文教程】其他章节及总结
- Android 2016最热网络请求开发框架之Okhttp ,facebook强烈推荐必备开发
- 看到 https://selfstore.io/ 这种在线出版网站想到的
- Android中使用Retrofit库进行Http通讯
- 手动搭建openstack的计算节点网络
- kindeditor 去掉网络图片上传功能
- Linux 上的基础网络设备详解
- Android一点 okhttp3 简单请求
- 【HttpClient4.5中文教程】【第五章 :流式(链式)API】
- 【HttpClient4.5中文教程】【第三章 :状态管理】3.1---3.6
- HTTP服务端接口模拟工具-HttpServerMockTool
- 网络编程七阶段总结
- Java 网络编程(六) 使用无连接的数据报(UDP)进行通信
- Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
- Https与Http,SSL,DevOps, 静态代码分析工具,RFID, SSH, 非对称加密算法(使用最广泛的一种是RSA), 数字签名, 数字证书
- Java 网络编程(四) InetAddress类