记录前端成长之HTTP协议

http的主要特点

  • 简单快速
  • 灵活
  • 无连接
  • 无状态

简单快速
每个资源(图片,页面等)都通过URL来定位。
灵活
HTTP协议的头部包含数据类型,HTTP协议可以完成不同数据类型的传输。
无连接
连接一次就会断开,不会一直保持连接。
无状态
服务器端和客户端式两种身份。第一次请求结束后,会立刻断开连接,第二次连接时,服务器无法判断两次请求的客户端是否位同一身份,因为服务器端并没有记住之前的状态。有的网站登录的时候可以记住账号,是用了别的手段,比如服务器端的session,并不是http协议能做到的。

http报文的组成部分

http报文的组成分为两部分,请求报文和响应报文。
请求报文包括:

  • 请求行:包括请求的方法、请求的URL、http协议以及版本。

  • 请求头:键值对形式。

  • 空行:空白行,用来隔开请求头和请求体。服务器端在解析请求头时如果遇到空白行,就表明后面是请求体。

  • 请求体:数据部分。

    请求报文图例:
    转载自网络如果侵权请联系删除
    响应报文包括:

  • 状态行:包含http协议及版本、状态码和状态描述。

  • 响应头

  • 空行

  • 响应体

响应报文图例:
转载自网络,如有侵权请联系删除!

http的方法

http方法有以下八种,前五个比较重要,其中get和post最常见。

  1. GET:获取资源
  2. POST:传输资源
  3. PUT:更新资源
  4. DELETE:删除资源
  5. HEAD:获取报文头部
  6. OPTIONS:询问服务器支持的各种方法
  7. TRACE:回显服务器收到的请求,用于测试和诊断
  8. CONNECT:http/1.1协议中预留的能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接。

get和post的区别

get和post的区别有很多,主要有以下几点:

  1. 在浏览器回退时,get不会重新请求,post会重新请求。
  2. get请求会被浏览器主动缓存,post则不会。
  3. get请求的参数会被保留在浏览器记录里,而post不会。(为预防CSRF攻击,许多公司用post来替换get)
  4. get请求在URL中传递的参数有大小限制(一般为2KB,不同浏览器略有不同),而post没有。
  5. get请求的参数直接暴露在URL中,相对不安全;而post的参数放在请求体中,没有直接暴露。

get和post请求的区别,最主要的也是要强调的一点是,get相对不隐私,post相对隐私。详细区别见下图:
转载自网络,如有侵权联系删除!

http状态码

http状态码分类:
转载自网络,如有侵权联系删除!
常见的http状态码:

  • 206:部分请求成功。206应用:客户端只请求某个大文件中的一部分内容,比如只播放视频地址的前面一部分,就可以用到206。
  • 301:重定向(永久)
  • 302:重定向(临时)
  • 304:告诉客户端,已有缓存资源,不需要从服务器端取了。
  • 403:请求被拒绝
  • 404:资源不存在

什么是持久连接/http长连接

  • 轮询:http1.0中,客户端每隔很短的时间,就对服务器发出请求查看是否有新消息。轮询速度足够快的话,用户就会有一种实时交互的感觉。但是这种做法会对客户端和服务器端造成很大的性能浪费。
  • 长连接:http1.1中,通过connection:keep-alive进行长连接,客户端只请求一次,但服务器一直保持连接,当客户端再次发出请求时,无需重新建立连接。

需要注意的是,http1.1默认长连接。一次TCP连接可以完成多个http请求,但是对每个请求仍要单独发header,keep-alive不会永久保持连接,可以在不同的服务器软件(例如Apache)中设定保持时间。

长连接中的管线化

管连接的原理
长连接时,默认的请求是这样的:

请求1 --> 响应1 -->请求2 --> 响应2 --> 请求3 --> 响应3

长连接的管线化,请求是这样的:

请求1–> 请求2–> 请求3–>响应1–>响应2–>响应3

管线化的注意事项
后续再更新

缓存

CSRF攻击

CSRF攻击和XSS攻击

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值