前端需要知道关于HTTP的那些事儿(一)

简介

http(Hyper Text Transfer Protocol)超文本传输协议是万维网应用层的协议,使用了面向连接的TCP作为运输层协议。

特征

  1. 简单快速:通过url就可以访问资源,协议简单,使得HTTP服务器的程序规模小,通信速度很快。
  2. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  3. 无连接:每次连接响应一个请求,连接一次响应后就会断开连接。
  4. 无状态:无状态协议,是指对于事务处理没有记忆能力,不会记住客户访问过的状态,不能区分访问身份。

HTTP的工作原理

http协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

在浏览器地址栏键入URL,按下回车之后会经历以下流程:
  1. 浏览器向服务器请求解析该URL中的域名所对应的IP地址
  2. 浏览器通过IP地址与默认监听的80端口,与服务器建立TCP连接
  3. 服务器对请求资源进行定位,响应给客户端
  4. 若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求(即持久连接)
  5. 客户端浏览器首先解析状态行、响应头、然后读取响应数据HTML,并在浏览器窗口中显示

请求方法

  1. GET:获取资源
  2. POST :传输资源
  3. HEAD :获得报文首部
  4. DELETE :删除资源
  5. PUT:更新资源
  6. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
    HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
GET和POST的区别
  1. Get比Post方法不安全,参数暴漏在url上,不能用来传递敏感信息Post放在request body中;
  2. Get在url中可传递的参数长度是有限的,Post方法可以传递的参数长度没有限制;
  3. Get请求参数会被完整保留在浏览器历史记录里,Post参数不会被保留;浏览器回退,Get请求不会重复提交,Post请求会重复提交;
  4. Get请求浏览器会自动缓存,Post请求不会自动缓存。

响应状态码

  1. 1**: 指示信息

  2. 2**:成功 200 :ok 204:请求被受理但没有资源可以返回 206 :partial content,请求带range头的GET请求,服务器对部分资源处理get请求。

  3. 3**:重定向301 :永久重定向 302:临时重定向 303:希望客户端能以get方法重定向到另一个uri上去,和302相似。304 Not modified:客户端发出了一个条件性的请求,服务器会从缓存中进行比对,如果未更新过那么他会给你返回一个304状态码,比如配置Etag。307:要求使用post方法的临时重定向

  4. 4**:客户端错误 400:客户端语法错误 401:请求需要认证 403:对应资源禁止访问 404:没找到资源

  5. 5**:服务器错误 500:服务器内部错误 503:服务器忙。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值