HTTP学习 | 青训营

90 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第4天

一、本堂课重点内容:

  • 本堂课的知识要点有哪些?

本课堂重点介绍了http的基础知识,分别介绍了HTTP的基本特点,报文结构,发展历程,常见应用场景以及实际应用等。

二、详细知识点介绍:

  • 本堂课介绍了哪些知识点?
  1. HTTP的含义:HTTP全名为Hyper Text Transfer Protocol即超文本传输协议,是属于应用层基于TCP协议的传输协议。
  2. HTTP的特点:HTTP传输通过请求和响应两个行为进行工作,同时HTTP是简单可扩展且无状态。
  3. 协议的发展:HTTP/0.9响应只有hTML文档,不支持其他文档类型;HTTP/1.0增加了Header和状态码,同时支持多种文档类型,使传输更为智能;HTTP/1.1增加了链接复用缓存内容协商等功能,进一步完善功能体系;HTTP/2增加了二进制协议、压缩header、服务器推送等功能;HTTP协议将不断完善改进,实现有效地信息传输。
  4. 状态码: 200:客户端请求成功;301:资源被永久转移其他URL;302:临时跳转;401:未经授权;404:请求资源不存在,输入错误地URL;500:服务器内部发生了不可预期地错误;504:网关/代理的服务器无法在规定时间内获得想要的响应。

三、实践练习例子:

  • 实战-node篇 使用标准库HTTP/HTTPS;
const https=require('https');
https.get('https://test.com?api_key=DEMO_KEY',(resp)=>{
    let data=
     resp.on('data',(chunk) =>{
         data +=chunk;
         });
     resp.on('end',() =>{
         console.log(JSON.parse(data).explanation);
         });
    }).on('error',(err) =>{
        console.log("Error:"+err.message);
        });
  • 实战-axios篇
axios.defaults.baseURL ="https://api.example.com";
axios.interceptors.request.use(function(config){
    return config;},
    function(err0r){
        return Promise.reject(error);});
        
axios({
method:'get',
url:'http://test.com',
responseType:'stream',}).then(function(response){
response.data.pipe(fs.createWriteStream('X.jpg'))
});

四、课后个人总结:

  • 本课程讲解了HTTP的基础知识,对HTTP的工作流程有了进一步了解;其中印象最为深刻的是实战篇,通过讲解的例子了解AJAX的FETCH、XHR,node、axios基本流程和基础代码。

五、引用参考: