您的位置:首页 > 理论基础 > 计算机网络

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协议 网络应用