HTTP协议简介
2018-01-02 22:02
211 查看
HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是网络应用层协议,建立在tcp/ip协议基础上。HTTP协议使用可靠的tcp连接,默认端口是80,现在都使用更安全的HTTPS协议,默认端口是443。
HTTP协议基于客户/服务器模式,客户端主动发出HTTP请求,服务器接受HTTP请求,返回HTTP响应结果。HTTP协议对HTTP请求,以及响应格式做了明确的规定。
用户打开浏览器,输入一个URL地址,就能接收到远程HTTP服务器发送过来的网页,浏览器就是最常见的http客户程序。如下图所示,http客户程序必须先发出一个http请求,然后才能接受来自http服务器的响应。
HTTP客户程序和HTTP服务器分别由不同的软件开发商提供,它们都可以使用任意的编程语言编写。用VC编写的http客户端程序能否与用java编写的http服务器顺利通信呢?答案是肯定的。HTTP协议严格规定了HTTP请求和响应的数据格式,只要HTTP服务器与客户端都遵循HTTP协议,就能彼此看得懂对方发送的消息。
1.HTTP请求格式
HTTP协议规定,HTTP请求由3部分构成,分别是:
●请求方式、URL、HTTP协议的版本
●请求头(Request Header)
●请求正文(Request Content)
(1)请求方式、URL、HTTP协议的版本
HTTP请求的第一行包括请求方式、URL、和协议版本这三项内容,以空格隔开:
POST /hello.html HTTP/1.1
“POST”表示请求方式
“/hello.html”表示URL
“HTTP/1.1”表示HTTP协议的版本。
根据HTTP协议,HTTP请求可以使用多种请求方式。
●GET:这种请求方式最为常见,客户程序可通过这种请求方式访问服务器上的一个文档,服务器把文档发给客户程序。
●POST:客户程序可通过这种方式发送大量信息给服务器。在HTTP请求中处理要包含要访问的文档的URL外,还包括大量的请求正文,这些请求正文中通常会包含大量的HTML表单数据。
●HEAD:客户程序和服务器之间交流一些内部数据,服务器不会返回具体的文档。当使用GET和[OST方法时,服务器最后都将特定的文档返回给用户程序。而HEAD请求方式则不同,它仅仅交流一些内部数据,这些数据不会影响用户浏览网页的过程,可以说对用户是透明的。HEAD请求方式通常不会单独使用,而是为其他请求方式起辅助作用。一些搜索引擎使用HRAD请求方式来获得网页的表示信息,还有一些HTTP服务器进行安全认证时,用这个消息来传递认证信息。
●PUT:客户程序通过这种方式把文档上传给服务器。
●DELETE:客户程序通过这种方式删除远程服务器上的某个文档。客户程序可以利用PUT和DELETE来管理远程服务器上文档。
GET和POST请求方式最常使用,而PUT和DELETE请求方式并不常用,因而不少服务器并不支持PUT和DELETE请求方式。
URL(universal Resouse identifier,统一资源定位符)用于标识要访问的网络资源。在HTTP请求中,通常只要给出相对于服务器的根目录的相对目录即可,因此以“/”开头。
HTTP请求的第一行的最后一部分内容为客户程序使用的HTTP协议的版本。
(2)请求头(Request Header)
请求头包含许多包含有关客户端环境和请求正文的有用信息。例如:请求头可以声明浏览器的类型、所用的语言、请求正文的类型,以及请求正文的长度等。
(3)请求正文(Request Content)
HTTP协议规定,请求头和请求正文之间必须以空行隔开(只有CRLF的行),这个空行非常重要,他表示请求头已经结束接下来是请求正文。请求中文中包含客户已POST方式提交的表单数据。
2.HTTP响应格式
与HTTP请求相似,HTTP响应也有3部分构成,分别是:
●HTTP协议的版本、状态代码、描述
●响应头(Response Header)
●响应正文(Response Content)
(1)HTTP协议的版本、状态代码、描述
HTTP响应的第一行包括服务器使用的HTTP协议的版本、状态代码,以及对状态代码的描述,这三项内容之间以空格隔开。
状态代码是一个3位整数,以1,2,3,4,5开头。
1xx:信息提示,表示临时的响应
2xx:响应成功,表明服务器成功接收了客户端请求
3xx:重定向
4xx:客户端错误,表明客户端请求了不正确的资源或请求格式错误
5xx:服务器错误,表明服务器上由于遇到某种错误而不能响应客户请求。
以下是一些常见的状态码:
200:响应成功
400:错误的请求
404:文件不存在
405:服务器不支持客户的请求方式
500:服务器内部错误。
(2)响应头(Response Header)
响应头也和响应头一样包含许多有用用的信息。例如,服务器类型、正文类型和正文长度等。
(3)响应正文(Response Content)
响应正文就是服务器返回的具体的文档,最常见的是HTML网页。HTTP响应正文之间也必须用空行隔开。
HTTP协议基于客户/服务器模式,客户端主动发出HTTP请求,服务器接受HTTP请求,返回HTTP响应结果。HTTP协议对HTTP请求,以及响应格式做了明确的规定。
用户打开浏览器,输入一个URL地址,就能接收到远程HTTP服务器发送过来的网页,浏览器就是最常见的http客户程序。如下图所示,http客户程序必须先发出一个http请求,然后才能接受来自http服务器的响应。
HTTP客户程序和HTTP服务器分别由不同的软件开发商提供,它们都可以使用任意的编程语言编写。用VC编写的http客户端程序能否与用java编写的http服务器顺利通信呢?答案是肯定的。HTTP协议严格规定了HTTP请求和响应的数据格式,只要HTTP服务器与客户端都遵循HTTP协议,就能彼此看得懂对方发送的消息。
1.HTTP请求格式
HTTP协议规定,HTTP请求由3部分构成,分别是:
●请求方式、URL、HTTP协议的版本
●请求头(Request Header)
●请求正文(Request Content)
(1)请求方式、URL、HTTP协议的版本
HTTP请求的第一行包括请求方式、URL、和协议版本这三项内容,以空格隔开:
POST /hello.html HTTP/1.1
“POST”表示请求方式
“/hello.html”表示URL
“HTTP/1.1”表示HTTP协议的版本。
根据HTTP协议,HTTP请求可以使用多种请求方式。
●GET:这种请求方式最为常见,客户程序可通过这种请求方式访问服务器上的一个文档,服务器把文档发给客户程序。
●POST:客户程序可通过这种方式发送大量信息给服务器。在HTTP请求中处理要包含要访问的文档的URL外,还包括大量的请求正文,这些请求正文中通常会包含大量的HTML表单数据。
●HEAD:客户程序和服务器之间交流一些内部数据,服务器不会返回具体的文档。当使用GET和[OST方法时,服务器最后都将特定的文档返回给用户程序。而HEAD请求方式则不同,它仅仅交流一些内部数据,这些数据不会影响用户浏览网页的过程,可以说对用户是透明的。HEAD请求方式通常不会单独使用,而是为其他请求方式起辅助作用。一些搜索引擎使用HRAD请求方式来获得网页的表示信息,还有一些HTTP服务器进行安全认证时,用这个消息来传递认证信息。
●PUT:客户程序通过这种方式把文档上传给服务器。
●DELETE:客户程序通过这种方式删除远程服务器上的某个文档。客户程序可以利用PUT和DELETE来管理远程服务器上文档。
GET和POST请求方式最常使用,而PUT和DELETE请求方式并不常用,因而不少服务器并不支持PUT和DELETE请求方式。
URL(universal Resouse identifier,统一资源定位符)用于标识要访问的网络资源。在HTTP请求中,通常只要给出相对于服务器的根目录的相对目录即可,因此以“/”开头。
HTTP请求的第一行的最后一部分内容为客户程序使用的HTTP协议的版本。
(2)请求头(Request Header)
请求头包含许多包含有关客户端环境和请求正文的有用信息。例如:请求头可以声明浏览器的类型、所用的语言、请求正文的类型,以及请求正文的长度等。
(3)请求正文(Request Content)
HTTP协议规定,请求头和请求正文之间必须以空行隔开(只有CRLF的行),这个空行非常重要,他表示请求头已经结束接下来是请求正文。请求中文中包含客户已POST方式提交的表单数据。
2.HTTP响应格式
与HTTP请求相似,HTTP响应也有3部分构成,分别是:
●HTTP协议的版本、状态代码、描述
●响应头(Response Header)
●响应正文(Response Content)
(1)HTTP协议的版本、状态代码、描述
HTTP响应的第一行包括服务器使用的HTTP协议的版本、状态代码,以及对状态代码的描述,这三项内容之间以空格隔开。
状态代码是一个3位整数,以1,2,3,4,5开头。
1xx:信息提示,表示临时的响应
2xx:响应成功,表明服务器成功接收了客户端请求
3xx:重定向
4xx:客户端错误,表明客户端请求了不正确的资源或请求格式错误
5xx:服务器错误,表明服务器上由于遇到某种错误而不能响应客户请求。
以下是一些常见的状态码:
200:响应成功
400:错误的请求
404:文件不存在
405:服务器不支持客户的请求方式
500:服务器内部错误。
(2)响应头(Response Header)
响应头也和响应头一样包含许多有用用的信息。例如,服务器类型、正文类型和正文长度等。
(3)响应正文(Response Content)
响应正文就是服务器返回的具体的文档,最常见的是HTML网页。HTTP响应正文之间也必须用空行隔开。
相关文章推荐
- HTTP协议简介
- HTTP 协议简介
- HTTP简介,http是一个属于应用层的面向对象的协议
- HTTP 协议简介
- HTTP 协议简介
- HTTP协议:简介
- Java网络编程从入门到精通(20):HTTP协议简介
- HTTP协议简介
- HTTP协议简介
- 从零开始学写HTTP服务器(一)http协议简介
- WebSocket(3)-- WebSocket协议简介[转载自http://blog.csdn.net/yl02520/article/]
- HTTP 协议中常用方法简介
- HTTP协议、简介、会话方式
- HTTP 协议简介
- Http协议的简介
- HTTP 协议简介
- HTTP协议 简介
- HTTP协议的八种方法简介
- http 2.0协议简介
- HTTP之一:http协议简介(1)