HTTP是一个 客户端和 服务器端请求和应答的标准(TCP)。HTTP是客户端浏览器或其他程序与 Web服务器之间的应用层通信协议。
HTTP一般指超文本传输协议,它是互联网应用最广泛的协议,是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP协议是无状态的。HTTP协议的主要特点有:1、支持客户/服务器模式。2、 简单快速。3、灵活。4、无连接。5、无状态。
HTTP的报文结构:
请求报文——从客户向服务器发送请求报文
请求首部:
1. 请求行:包含请求的方法,请求的URL和请求的HTTP版本
2.请求首部字段:从客户端向服务器端发送请求报文是使用的首部。补充说明了请求的附加内容、客户端信息、响应内容优先级等信息。
3.通用首部字段:请求报文和响应报文都会用到的首部
4.实体首部字段:针对请求报文和响应报文实体部分使用的字段。补充说明了资源内容、更新时间等与实体有关的信息。
5.其他:如set-cookies等非Http协议的请求头
空行:[CR+LF]由它来划分
报文主体:应该被发送的数据(并不一定要有报文主体)
响应报文——从服务器到客户的回答
报文首部:
1.状态行:包含Http版本号,响应结果状态码和原因语句
2.响应首部字段:从服务器向客户端返回响应豹纹是使用的首部。补充说明了响应的附加内容,也会要求客户端附加额外的内容信息 。
3.通用首部字段:同上
4.实体首部字段:同上
5.其他:同上
空行:同上
报文主体:同上
这两种类型的消息由一个起始行,一个或者多个头域,一个指示头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。
常见的HTTP请求头:Accept-Charset(用于指定客户端的字符集)、Accept-Encoding(用于指定可接受的内容编码)、Accept-Language(用于指定一种 自然语言)、Host(用于指定被请求资源的Internet主机和端口号)、User-Agent(客户端将它的操作系统、浏览 器和其他属性告诉服务器)、Connection(当前连接是否保持)
常见的HTTP响应头:Server(使用的服务器的名称)、Content-Type(用来指明发送给接收者的实体正文的媒体类型)、Content-Encoding、Content-Language、Content-Length、Keep-Alive(保持连接的时间)
常见的HTTP状态码:200(客户端请求成功)、302(临时跳转,跳转的地址通过Location指定)、400(客户端请求有语法错误,不能被服务器识别)、403(服务器收到请求,但是拒绝提供服务)、404(请求的资源不存在)、500(服务器发生不可预期的错误)