0
点赞
收藏
分享

微信扫一扫

关于计算机网络的笔记

HTTP

概念

  • HTTP是一个用于在两点之间传输文字、图片、音频、视频等超文本数据等约定和规范

五大类HTTP状态码

  • 1xx:提示信息,表示目前是协议处理的中间状态,还需后续操作

  • 2xx:成功,报文已经收到并被正确处理

    • 200 OK:表示一切正常。若为非HEAD请求,服务器返回的响应头会有body数据。
    • 204 No Content:同200,但响应头没有body数据。
    • 206 Partial Content:表示响应返回的body数据是其中的一部分,也是服务器处理成功的状态。
  • 3xx:重定向,资源位置发生变动,需要客户端重新发送请求

    • 301 Moved Permanently:表示永久重定向,即资源已不存在,需用新的URL再次访问。
    • 302 Found:表示临时重定向,即资源还在,暂时需要另一个URL来访问。
    • 301302用响应头中的Location指明后续要跳转的URL。
  • 4xx:客户端错误,请求报文有误,服务器无法处理

    • 400 Bad Request:表示客户端请求的报文有错误。
    • 403 Forbidden:表示服务器禁止访问资源。
    • 404 Not Found:表示请求的资源在服务器上不存在或未找到。
  • 5xx:服务器错误,服务器在处理请求时内部发生了错误

    • 500 Internal Server Error:表示服务器发生未知错误。
    • 501 Not Implemented:表示客户端请求的功能还不支持 – 即将开业,敬请期待。
    • 502 Service Unavailable:表示服务器忙,暂无法响应。

常见字段

  1. Host:客户端发送请求时,用来指定服务器的域名。
    • Host: www.A.com
  2. Content-Length:表明本次返回的数据长度。
    • Content-Length:1000 – 该资源大小1000个字节
  3. Connection:常用于客户端请求服务器使用TCP持久连接。
    • Connection:keep-alive
  4. Content-Type:用于服务器回应时,告诉客户端,本次数据时什么格式。
    • Content-Type: text/html ; charset=utf-8 – 发送的是网页,编码为utf-8
    • 客户端指定可以接受哪些数据格式:Accept: / – 任意
  5. Content-Encoding:表示服务器返回的数据使用了什么压缩格式。
    • Content-Encoding: gzip
    • Accept-Encoding: gizp, deflate – 客户端指定可以接受的压缩方式

GET 与 POST

  • 区别
    • GET:是指从服务器获取资源,这个资源可以是静态的文本、页面、图片视频等。
    • POST:是指向URL指定的资源提交数据,数据就放在报文的body里。
  • 安全和幂等
    • 安全:是指请求方法不会破坏服务器上的资源。
    • 幂等:是指多次执行相同的操作,结果都是相同的。
    • GET方法就是安全且幂等的,因为他是只读操作,无论操作几次,其数据都是安全的,且每次结果都一样。
    • POST因为是新增或提交数据的操作,会修改服务器上的资源,所以是不安全的,且多次提交数据会创建多个资源,所以不是幂等的。

HTTP特性

  • 优点:简单、灵活和易于扩展、应用广泛和跨平台。
  • 简单

    • HTTP基本的报文格式为header+body,头部为key-value易于理解
  • 灵活和易于扩展

    • HTTP中的请求方法、URI/URL、状态码、头字段等都允许自定义和扩充

    • HTTP工作在应用层(OSI第七层),则它的下层可以随意变化。

  • 缺点:无状态、明文传输不安全

  • 无状态双刃剑

    • 无状态的好处:服务器不会记忆HTTP的状态,所以不需要额外的资源来记录状态信息,可以减轻服务器的负担。
    • 无状态的坏处:既然服务器没有记忆能力,它在完成有关联性的操作时会非常麻烦。
      • 如:登陆->添加购物车->下单->结算->支付,这些操作都需要知道用户身份,若无关联,则每一次都要询问身份信息
      • 解决方法如Cookie技术(存储在用户本地终端上的数据),客户端请求一次后,服务器会发一个装有客户信息的小贴纸,再次请求时,则服务器就可以有效识别

  • 明文传输双刃剑

    • 明文意味着在传输过程中的信息,是可方便阅读的,通过F12和抓包都可以查看;但在传输的漫长的过程中,信息的内容很容易被窃取,毫无隐私可言。
  • 不安全

    • 通信使用明文(不加密),内容可能会被窃听。如:账号信息容易泄漏,那你号没了
    • 不验证通信方的身份,因此有可能遭遇伪装。如:访问假的淘宝、拼多多,那你钱没了
    • 无法证明报文的完整性,所以有可能已遭篡改。如;网页上植入垃圾广告,视觉污染,眼没了
举报

相关推荐

0 条评论