HTTP简介
HTTP 协议是 Hyper Text Transfer Protocol (超文本传输协议)的缩写。
是用于从万维网服务器传输超文本到本地浏览器的传送协议
HTTP是一个基于TCP/IP通信协议来传送数据(HTML文件、图片文件、查询结果)
HTTP工作原理
HTTP 协议工作于客户端-服务端。浏览器作为HTTP客户端通过URL想HTTP服务端即web服务器发送所有请求。
Web服务器有 Apache服务器、IIS服务器 (Internet information Services)等
Web服务器接收到请求后,向客户端发送响应信息
HTTP的默认端口是80 ,但是也可以改成其他的
HTTP三点注意事项
HTTP是无连接的:限制每次连接只处理一个请求。服务器处理完客户请求,并受到客户应答后,即断开连接。
HTTP是媒体独立:只要客户端和服务器知道如何处理数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
HTTP是无状态:无状态协议,是指对事物的处理没有记忆功能。或导致如果处理后续内容需要前面信息,则他需要重传。
HTTP消息结构
HTTP是基于客户端、服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议
一个HTTP‘客户端’是一个应用程序(web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP请求的目的。
一个HTTP‘服务器’同样是一个应用程序(通常是一个web服务,如Apache web服务器 或IIS服务器),通过接收客户端请求并向客户端发送HTTP响应数据。
HTTP使用统一资源标识符(Uniform Resource Ldentifiers,URL)来传输数据和建立连接
客户端请求消息
客户端发送一个HTTP请求到服务器的请求包括以下格式:请求行、请求头部、空行和请求数据四个部分组成
服务器响应消息
HTTP响应也由四个部分组成,分别是:状态行,消息报头。空行和响应正文
(具体看这里http://www.runoob.com/http/http-messages.html)
HTTP请求方法
根据HTTP标准,HTTP请求可以使用多种请求方法
HTTP1.0定义了三种请求方法:GET、POST、HEAD方法。
HTTP2.0定义了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
GET 请求指定的页面信息,并返回实体主体
HEAD 类似与get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(如:提交表单或上传文件)。数据被包含 在请求体中。POST请求可能会导致新的资源建立和/已有资源的修改。
(其他方法请看http://www.runoob.com/http/http-methods.html)
HTTP响应头信息
HTTP请求提供了关于请求,响应或者其他的发送实体的信息。
Allow 服务器支持的请求方法(如GET、POST等)
Content-Encoding 文档编码类型
Content-Length 表示内容长度
Content-Type 表示后面的文档属于什么MIME类型
(其他请看http://www.runoob.com/http/http-header-fields.html)
HTTP状态码
当浏览者访问一个网页时,浏览者的浏览器会向网页所在的服务器发出请求。
当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。
HTTP状态码的英文为 HTTP Status Code
下面是常见的HTTP状态码:
200 - 请求成功
302 - 资源(网页等) 被永久转移到其他URL
404 - 请求资源不存在(如网页)
500 - 内部服务器错误
HTTP状态码分类
1** 信息,,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中国发生错误
(HTTP状态码列表http://www.runoob.com/http/http-status-codes.html)
HTTP content-type
Content-type,内容类型,一般是指网页中存在的Content-type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。
HTTP content-type 对照表
http://www.runoob.com/http/http-content-type.html