1,HTTP是一个属于应用层的面向对象的协议,它是基于TCP协议的可靠传输,采用客户端/服务器端模式,由客户端发起请求,服务端进行响应。
2,HTTP是一种无状态协议,即不保存状态,它不对之前发生过的请求和响应的状态进行管理。每当有新的请求发送时,就会有对应的新响应产生,协议本身并不保留之前一切的请求或响应报文的信息。这是为了更快地处理大量事务,确保协议的可伸缩性而设计的。但同时也带来了一些不便,比如,用户登录到一家购物网站,即使他跳转到该网站的其他页面,也需要能继续保持登录状态,为了实现期望的保持状态功能,于是就引入了Cookie的技术。(Cookie的技术通过在请求和响应报文中写入的Cookie信息来控制客户端的状态.Cookie会根据从服务器端发送的响应报文内的一个叫做设置Cookie的首部字段信息,通知客户端保存的Cookie,当客户端下次再往服务器端发送请求时,客户端会自动在请求报文中加入的Cookie值后发送出去。服务器端发现客户端发送过来的饼干后,会去 和比对服务器上的记录,最后得到之前的状态信息。)
3,URL(Uniform Resource Locator,统一资源定位符)是我们使用Web 浏览器等访问Web页面时需要输入的网页地址,比如http://www.baidu.com.URI(Uniform Resource Identifier,统一资源标识符)是由某个协议方案表示的资源的定位标识符,协议方案是指访问资源所使用的协议类型名称.URI用字符串标识某一互联网资源,而URL表示资源的地址,可见URL是URI的子集。
HTTP中的方法:常用
1)GET:获取资源
GET方法用来请求访问已被URI识别的资源,指定的资源经服务器端解析后返回响应内容。
(2)POST:传输实体主体
POST方法用来传输实体的主体。虽然GET方法也可以传输,但一般不用GET方法进行传输。尽管POST的功能与GET很相似,但POST的主要目的并不是获取响应的主体内容。
(3)HEAD:获得报文首部
HEAD方法和GET方法一样
(4)PUT:传输文件
PUT方法用来传输文件,就像FTP协议的文件上传一样,要求在请求中。(4)PUT:传输文件PUT方法用来传输文件,就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。但是由于HTTP / 1.1的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全性问题,所以一般不使用该方法。
(5)DELETE:删除文件
DELETE方法用来删除文件.DELETE方法按请求URI删除指定的资源但是。PUT一样不带验证机制,所以一般也不是用该方法。
(6)OPTIONS:询问支持的方法
OPTIONS方法用来查询针对请求URI指定的资源支持的方法。
(7)TRACE:追踪路径
TRACE方法时让Web服务器端将之前的请求通信环回给客户端的方法。
(8)CONNECT:要求用隧道协议连接代理
CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL(安全套接层,安全套接层)和TLS(传输安全层)协议把通信内容加密后经网络tunnel,tunnel传输。
HTTP状态码 根据开头数字来记区分
。状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果状态码的类别有以下5种:
类别 | 原因短语 | |
1XX | 信息性状态码 | 接收的请求正在处理 |
2XX | 成功状态码 | 请求正常处理完毕 |
3XX | 重定向状态码 | 需要进行附加操作以完成请求 |
4XX | 客户端错误状态码 | 服务器无法处理请求 |
5XX | 服务端错误状态码 | 服务器处理请求出错 |
常见的状态码如下:
2xx成功
3xx重定向
301永久移动:永久性重定向。该状态码表示请求的资源已被分配了新的URI,以后应该使用现在资源所指的URI。302 Found:临时性重定向。该状态码表示请求的资源已经被分配了新的URI,希望用户本次能够使用新的URI访问。303参见其他:该状态码表示由于请求对应的资源存在着另一个URI,应该使用GET方法定向获取请求的资源。 :该状态码表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但因发生请求未满足条件的情况后直接返回304.304状态码返回时,不包含任何响应的主体部分0.304虽然被划分在3XX类别中,但是和重定向没有关系。(附带条件的请求时指采用GET方法的请求报文中包含If-Match,If-Modified-Since,If-Range等任一首部)307 Temporary Redirect:临时重定向。该状态码与302发现有着相同的含义。4xx客户端错误
400 Bad Request:该状态码表示请求报文中存在语法错误。
401未授权:该状态码表示发送的请求需要有通过HTTP认证(BASIC认证,DIGEST认证)的认证信息。另外若之前已进行过1次请求,则表示用户认证失败。
403 Forbidden:该状态码表明对请求资源的访问被服务器拒绝了。未获得文件系统的访问授权,访问权限出现某些问题等情况都可能发生403。
404 Not Found:该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。
5xx服务器错误
500内部服务器错误:该状态码表明服务器端在执行请求时发生了错误,也有可能是Web应用存在的Bug或某些临时的故障。
503服务不可用:该状态码表明服务器暂时处于超负荷或正在进行停机维护,现在无法处理请求。