博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTP协议基础及发展历史
阅读量:6291 次
发布时间:2019-06-22

本文共 1195 字,大约阅读时间需要 3 分钟。

5层网络模型介绍

低三层

物理层主要作用是定义物理设备如何传输数据

数据链路层在通信的实体间建立数据链路连接

网络层为数据在结点之间传输创建逻辑链路

传输层

向用户提供可靠的端到端(End一to一End)服务

传输层向高层屏蔽了下层数据通信的细节

应用层

为应用软件提供了很多服务

构建于TCP协议之上

屏蔽网络传输相关细节

HTTP协议的发展历史

HTTP/0.9

只有一个命令GET

没有HEADER等描述数据的信息

服务器发送完毕,就关闭TCP连接

HTTP/1.0

增加了很多命令

增加statuscode和header

多字符集支持、多部分发送、权限、缓存等

HTTP/1.1

持久连接

pipeline

增加host和其他一些命令

HTTP2

所有数据以二进制传输

同一个连接里面发送多个请求不再需要按照顺序来

头信息压缩以及推送等提高效率的功能

HTTP的三次握手

http 1.0 请求一次 tcp连接一次(有三次握手)

http 1.1 请求多次 tcp 保持连接(第二次请求,没有三次握手的开销)

http2.0 请求并发,同一个用户,访问网页只需要一次 tcp 链接

为了防止服务端开启无用的连接,如,如果只有一次握手,客户端发送请求,服务端开启连接,由于网络问题,客户端没接收信息,关闭了,服务端会一直开着,形成无用连接。

URI-URL和URN

URI

Uniform Resource Identifier/统一资源标志符

用来唯一标识互联网上的信息资源

包括URL和URN

URL

Uniform Resource Locator / 统一资源定位器

此类格式的都叫做URL,比如ftp协议

URN

永久统一资源定位符

在资源移动之后还能被找到

目前还没有非常成熟的使用方案

HTTP报文格式

HTTP方法

用来定义对于资源的操作

常用有GET、POST等

从定义上讲有各自的语义

HTTP CODE

定义服务器对请求的处理结果

各个区间的CODE有各自的语义

好的HTTP服务可以通过CODE判断结果

创建一个最简单的web服务

进入文件目录,命令行 node server.js,打开网页 localhost:8888即可。

// server.jsconst http = require('http')http.createServer(function (request, response) {    console.log('request come', request.url)    response.end('123')}).listen(8888)console.log('server listening on 8888')复制代码

转载于:https://juejin.im/post/5ba594cee51d450e9649da27

你可能感兴趣的文章
Spark修炼之道(进阶篇)——Spark入门到精通:第五节 Spark编程模型(二)
查看>>
一线架构师实践指南:云时代下双活零切换的七大关键点
查看>>
ART世界探险(19) - 优化编译器的编译流程
查看>>
玩转Edas应用部署
查看>>
music-音符与常用记号
查看>>
sql操作命令
查看>>
zip 数据压缩
查看>>
Python爬虫学习系列教程
查看>>
【数据库优化专题】MySQL视图优化(二)
查看>>
【转载】每个程序员都应该学习使用Python或Ruby
查看>>
PHP高级编程之守护进程,实现优雅重启
查看>>
PHP字符编码转换类3
查看>>
rsync同步服务配置手记
查看>>
http缓存知识
查看>>
Go 时间交并集小工具
查看>>
iOS 多线程总结
查看>>
webpack是如何实现前端模块化的
查看>>
TCP的三次握手四次挥手
查看>>
关于redis的几件小事(六)redis的持久化
查看>>
webpack4+babel7+eslint+editorconfig+react-hot-loader 搭建react开发环境
查看>>