100
继续请求者应当继续提出请求。服务器已收到请求的一部分,正在等待其余部分。101
切换协议请求者已要求服务器切换协议,服务器已确认并准备切换。200
成功服务器已成功处理了请求。201
已创建请求成功并且服务器创建了新的资源。202
已接受服务器已接受请求,但尚未处理。203
非授权信息服务器已成功处理了请求,但返回的信息可能来自另一来源。204
无内容服务器成功处理了请求,但没有返回任何内容。205
重置内容服务器成功处理了请求,内容被重置。206
部分内容服务器成功处理了部分请求。300
多种选择针对请求,服务器可执行多种操作。301
永久移动请求的网页已永久移动到新位置,即永久重定向。302
临时移动请求的网页暂时跳转到其他页面,即暂时重定向。303
查看其他位置如果原来的请求是 POST,重定向目标文档应该通过 GET 提取。304
未修改此次请求返回的网页未修改,继续使用上次的资源。305
使用代理请求者应该使用代理访问该网页。307
临时重定向请求的资源临时从其他位置响应。400
错误请求服务器无法解析该请求。401
未授权请求没有进行身份验证或验证未通过。403
禁止访问服务器拒绝此请求。404
未找到服务器找不到请求的网页。405
方法禁用服务器禁用了请求中指定的方法。406
不接受无法使用请求的内容响应请求的网页。407
需要代理授权请求者需要使用代理授权。408
请求超时服务器请求超时。409
冲突服务器在完成请求时发生冲突。410
已删除请求的资源已永久删除。411
需要有效长度服务器不接受不含有效内容长度标头字段的请求。412
未满足前提条件服务器未满足请求者在请求中设置的其中一个前提条件。413
请求实体过大请求实体过大,超出服务器的处理能力。414
请求 URI 过长请求网址过长,服务器无法处理。415
不支持类型请求的格式不受请求页面的支持。416
请求范围不符页面无法提供请求的范围。417
未满足期望值服务器未满足期望请求标头字段的要求。500
服务器内部错误服务器遇到错误,无法完成请求。501
未实现服务器不具备完成请求的功能。502
错误网关服务器作为网关或代理,从上游服务器收到无效响应。503
服务不可用服务器目前无法使用。504
网关超时服务器作为网关或代理,但是没有及时从上游服务器收到请求。505
HTTP 版本不支持服务器不支持请求中所用的 HTTP 协议版本。1、GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。
POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的id=1213&name=suguniang就是两个实际的传输数据键值对。因此,GET请求的数据会暴露在地址栏中,而POST请求则不会。
2、传输数据的大小
在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中,对于GET,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求时,传输数据会受到URL长度的限制。
对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。
3、安全性
POST的安全性比GET的高。这里的安全是指真正的安全,而不同于上面GET提到的安全方法中的安全,上面提到的安全仅仅是不修改服务器的数据。比如,在进行登录操作,通过GET请求,用户名和密码都会暴露再URL上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。除此之外,GET请求提交的数据还可能会造成Cross-site request frogery攻击,但是真正重要的数据在传的过程中还会更换协议http–>https,比如在网上支付的过程中
4、HTTP中的GET,POST,SOAP协议都是在HTTP上运行的
1、缓存的作用
2、缓存的分类
3、HTTP缓存
常见的 HTTP 缓存只能存储 GET 响应,对于其他类型的响应则无能为力。 浏览器在每次GET URL时都会先检查URL对应的缓存,除非你指定不使用缓存(强制刷新或者在控制台勾选Disable Cache等)
4、强缓存
不请求服务器,直接用,返回状态码200
no-cache
no-store
max-age&s-maxage
max-age
(单位为s)指定设置缓存最大的有效时间,定义的是时间长短。当第一次访问服务器的时候,返回一个max-age,在max-age这段时间内,客户端不会在访问服务器获取该资源。s-maxage
用于共享缓存(比如CDN),s-maxage也叫代理缓存,优先级高于max-agepublic&private
public
表示该资源可以被多个用户共享,当没有指定public还是private的时候,默认是publicprivate
响应只作为私有的缓存,不能在用户间共享,如果要求认证,响应会自动设置为privateno-cache&no-store
no-cache
5、协商缓存
请求服务器,服务器同意了才用,返回状态码304
当浏览器检测某个资源请求没有强缓存,就会发起一个请求到服务器,验证是否存在协商缓存,如果存在协商缓存就回家返回http状态为304,并且会显示一个not modified的字符串
协商缓存是利用的是【Last-Modified,If-Modified-Since】和【ETag、If-None-Match】这两对Header来管理的
last-Modified
服务器端文件的最后修改时间,需要和cache-control共同使用,是检查服务器端资源是否更新的一种方式。当浏览器再次进行请求时,会向服务器传送If-Modified-Since报头,询问Last-Modified时间点之后资源是否被修改过。如果没有修改,则返回码为304,使用缓存;如果修改过,则再次去服务器请求资源,返回码和首次请求相同为200,资源为服务器最新资源。
ETag ETag就像一个指纹,资源变化都会导致ETag变化,跟最后修改时间没有关系,ETag可以保证每一个资源是唯一的;可以理解为ETag是一个可以与Web资源关联的记号(token) If-None-Match的header会将上次返回的ETag发送给服务器,询问该资源的ETag是否有更新,有变动就会发送新的资源回来;如果ETag没有变动,则返回状态码304