HTTP原理

HTTP协议工作于客户端-服务端架构为上。 浏览器作为HTTP客户端通过URLHTTP服务端即WEB服务器发送所有请求。

HTTP默认端口号为80, 但是你也可以改为8080或者其他端口。

HTTP三点注意事项:
    HTTP是无连接的: 无连接的含义是限制每次连接只处理一个请求。 服务器处理完客户的请求, 并收到客户的应答后, 即断开连接。 采用这种方式可以节省传输时间。

HTTP是媒体独立的: 这意味着, 只要客户端和服务器知道如何处理的数据内容, 任何类型的数据都可以通过HTTP发送。 客户端以及服务器指定使用适合的MIME-type内容类型。

HTTP是无状态HTTP协议是无状态协议。 无状态是指协议对于事务处理没有记忆能力。 缺少状态意味着如果后续处理需要前面的信息, 则它必须重传, 这样可能导致每次连接传送的数据量增大。 另一方面, 在服务器不需要先前信息时它的应答就较快。

HTTP消息结构

HTTP是基于客户端/服务端( C/S) 的架构模型, 通过一个可靠的链接来交换信息, 是一个无状态的请求/响应协议。

一个HTTP"客户端"是一个应用程序( Web浏览器或其他任何客户端) , 通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目 的。

一个HTTP"服务器"同样也是一个应用程序(通常是一个Web服务, 如Apache Web服务器或IIS服务器等) , 通过接收客户端的请求并向客户端发送HTTP响应数据。

HTTP使用统一资源标识符( Uniform Resource Identifiers, URI) 来传输数据和建立连接。

一旦建立连接后, 数据消息就通过类似Internet邮件所使用的格式[RFC5322]和多用途Internet邮件扩展( MIME[RFC2045]来传送。

客户端请求消息

客户端发送一个HTTP请求到服务器的请求消息包括以下格式: 请求行( request line) 、 请求头部( header) 、 空行和请求数据4个部分组成,下图给出了请求报文的一般格式。

wKioL1UME7Xzb9moAABqV18esyQ206.jpg

服务器响应消息

HTTP响应也由三个部分组成, 分别是: 状态行、 消息报头、 响应正文。

HTTP请求方法

根据HTTP标准, HTTP请求可以使用多种请求方法。

HTTP1 .0定义了三种请求方法: GET, POST HEAD方法。

HTTP1 .1 新增了五种请求方法: OPTIONS, PUT, DELETE, TRACE CONNECT 方法。

序号方法描述
1GET请求指定的页面信息, 并返回实体主体。
2HEAD类似于get请求, 只不过返回的响应中没有具体的内容, 用于获取报头
3POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件) 。 数据被包含在请求体中。 POST请求可
能会导致新的资源的建立和/或已有资源的修改。
4PUT从客户端向服务器传送的数据取代指定的文档的内容
5
DELETE请求服务器删除指定的页面。
6CONNECTHTTP/1 .1 协议中预留给能够将连接改为管道方式的代理服务器。
 7 OPTIONS允许客户端查看服务器的性能。
8TRACE

回显服务器收到的请求, 主要用于测试或诊断。

HTTP状态码

当浏览者访问一个网页时, 浏览者的浏览器会向网页所在服务器发出请求。 当浏览器接收并显示网页前, 此网页所在的服务器会返回一个包含HTTP状态码的信息头( server header) 用以响应浏览器的请求。

HTTP状态码的英文为HTTP Status Code

下面是常见的HTTP状态码:

200 - 请求成功

301 - 资源(网页等) 被永久转移到其它URL

404 - 请求的资源(网页等) 不存在

500 - 内部服务器错误

HTTP状态码分类

HTTP状态码由三个十进制数字组成, 第一个十进制数字定义了状态码的类型, 后两个数字没有分类的作用。 HTTP状态码共分为5种类型:

分类分类描述
1**信息, 服务器收到请求, 需要请求者继续执行操作
2**成功, 操作被成功接收并处
3**重定向, 需要进一步的操作以完成请求
4**客户端错误, 请求包含语法错误或无法完成请
5**服务器错误, 服务器在处理请求的过程中发生了错误


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章