IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 前端需要知道关于HTTP的那些事儿(一) -> 正文阅读

[网络协议]前端需要知道关于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:服务器忙。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-07 12:22:55  更:2021-12-07 12:23:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/8 10:13:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码