【HTTP】http协议知识点

HTTP协议栈所在位置

 

HTTP三次握手

  http在进行客户端和服务端建立通信链路的过程中需要创建tcp connection,因为http协议是工作在应用层,不承载连接任务都是基于tcp。http在在tcp基础上去进行请求和响应。而http在创建连接时候会有三次握手。

          http三次握手时序图

 

 

HTTP状态码

    HTTP状态码是用以表示网页服务器HTTP响应状态的3位数字代码。所有状态码的第一个数字代表了响应的五种状态之一。当用户试图通过HTTP或FTP协议访问一台运行主机上的内容时,Web服务器返回一个表示该请求的状态的数字代码。该状态代码记录在服务器日志中,同时也可能在 Web 浏览器或 FTP客户端显示。也就是我们打开页面发生错误时,浏览器显示的错误信息代码。状态代码可以指明具体请求是否已成功,还可以揭示请求失败的确切原因。

HTTP协议状态码表示的意思主要分为五类,大体是:

  • 1××:保留
  • 2××:表示请求成功地接收
  • 3××:为完成请求客户需进一步细化请求
  • 4××:客户错误
  • 5××:服务器错误

      下面是一些常见的HTTP状态码

  1. 500 (内部服务器错误)  

    对HTTP 500错误的定义已经充分证明了这是一个最常见的HTTP错误。 一般来说,HTTP 500 错误会在服务器的程序码出错时出现,或者web服务器发生内部错误时返回的信息。 例如,web服务器过载时将无法正确处理访问请求。

  2. 502 (无效网关):

    作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。

  3. 503 (服务不可用):

    503错误也是服务器问题,表示服务当前不可用(Service unavaiable),可能是因为当前服务器繁忙无法处理请求,比如连接数太高,cpu繁忙等。

  4. 404 (文件未找到)

    大多数人都知道这个错误。 当用户试图访问Web服务器(通常是一个网页)上某个实际不存在的资源时,就会发生404错误。404错误可能是由无效的链接引起,也可能是URL拼写错误,还可能是因为虚拟主机将所请求页面移到其他地方(或删除所请求页面)。 一些网站设置了自定义页面以防止坏链接所产生的不良影响。

  5. 403 (禁止访问)

    403错误类似于401错误,不同之处在于401错误是未经授权,而403错误是禁止访问。 任何登录对403错误都不起作用。 尝试访问(被禁止的)网站目录时,就会发生403错误。

  6. 400 (错误请求)

    Web服务器通过返回HTTP 400错误告诉访问者,访问者用来访问网站的程序出错,或访问请求途中遭到破坏。

  7. 401 (未经授权)

    访问者试图访问受限页面但未经授权时,网站返回HTTP 401错误。错误登录尝试是导致这一错误的主因。

  8. 301 (永久重定向)

    被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。

  9. 302 (临时重定向)

    请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。

  10.304 (Not Modified)

     请求资源没有改变,可以使用缓存的内容。在请求中附带了头部信息:  If-None-MatchIf-Modified-Since。如果是 200 OK ,响应会带有头部 Cache-Control, Content-Location, Date, ETag, Expires

  11. 200 (请求成功):

    请求已成功,请求所希望的响应头或数据体将随此响应返回。

  12. 206 (部分内容)

    服务器已经成功处理了部分GET请求。类似于FlashGet或者迅雷这类的HTTP 下载工具,都是使用此类响应实现断点续传,或者将一个大文档分解为多个下载段同时下载。

 

 

 HTTP安全响应头

    1.Set-Cookie:由服务器端向客户端发送 cookie。

    2. Access-Control-Allow-Origin:允许访问控制同源,实现跨域访问,它有多个CORS相关字段。

    3. Authorization :HTTP协议中的 Authorization 请求消息头含有服务器用于验证用户代理身份的凭证,通常会在服务器返回401 Unauthorized 状态码以及WWW-Authenticate 消息头之后在后续请求中发送此消息头。

    4. X-XSS-Protection:用于开启浏览器的XSS过滤功能,当检测到跨站脚本攻击 (XSS)时,浏览器将停止加载页面,以防止XSS跨站脚本攻击。

    5. Content-Security-Policy:允许站点管理者控制用户代理能够为某个页面获取哪些资源。

更多http安全信息可以访问 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials

 

 HTTP管道技术(Pipelining )

  一般浏览器会在收到上一个请求的响应之后,再发送下一个请求。而http管道技术就是可以将多个http请求同一批发送,这些http请求使用同一个 TCP 连接,而发送过程中客户端不需要等待服务器对前一个请求的响应。

 

 HTTP 缓存  

   HTTP换成分为两类:强制缓存,协商缓存。

   HTTP缓存相关头信息:

    1.强缓存:Pragma、Cache-Control、Expries。

    2.协商缓存:Last-Modified/If-Modified-Since、Etag/If-None-Match。

 

转载于:https://www.cnblogs.com/songgj/p/10614577.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值