HTTP协议是什么?
HTTP协议(HyperText Transfer Protocol,超文本传输协议)
是用于从WWW服务器传输超文本到本地浏览器的传送协议。
它可以使浏览器更加高效,使网络传输减少。
它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部 分内容首先显示(如文本先于图形)等。
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是 一个无状态的协议。
HTTP是如何工作的?
1. 建立连接
客户机与服务器需要建立连接。单机某个超链接,HTTP协议工作开始2. 发送请求
建立连接后,客户机发送一个请求给服务器。格式为:前面是统一资源标识符URL,中间是协议版本号,后面是MIME信息(包括请求修饰符、客户机信息和可能的内容)3. 响应
服务器接到请求后,给予相应的响应信息。格式为:首先是一个状态行(包括信息的协议版本号、一个成功或错误的代码),然后是MIME信息(包括服务器信息、实体信息和可能的内容)4. 断开连接
HTTP报头格式
①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。
它的主要作用是从web服务器获取一个资源。
②为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL。
③是协议名称及版本号。
④是HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。
与缓存相关的规则信息,均包含在header中
accept:Accept浏览器支持的MIME类型分别是text/html applicant/xhtml+xml application/xml和*/*
MIME: 多功能Internet邮件扩充服务
text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;
text/html表示html文档;
Application:用于传输应用程序数据或者二进制数据
applicantion/xhtml+xhtml表示xhtml文档
application/xml表示xml文档
⑤是报文体,它将一个页面表单中的组件值通过param1=value1¶m2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html? param1=value1¶m2=value2”的方式传递请求参数。
referer:消息头用于表示发出请求的原始URL
accept-language:浏览器支持的语言,zh-cn表示简体中文,zh表示中文
user-agent:消息头提供与浏览器或其他生成请求的客户端软件有关的信息
Host:消息头用于指定出现在被访问的完整URL中的主机名称
Cookie:消息头用于提交服务器向客户端发布其他参数
Httponly:如果设置这个属性,将无法通过客户端JavaScript直接访问cookie
防止黑客利用cookie进行XXS攻击
Connection:表示持久的客户端与服务连接。connection:keep-alive
X_Forrwarded_For:是用来识别通过HTTP代理或负载均衡的方法连接到Web服务器的客户端最原始的IP地址的HTTP
Location:这个消息头用于在重定向响应(那些状态码以3开头的响应)中说明重定向的目标