HTTP协议深入

目录

1. 了解web和网络基础

1.1 web万维网和HTTP协议

1.2 HTTP的历史和版本

1.3 当下http协议的使用现状

2. 与http相关的的协议

2.1 TCP/IP协议族

2.1.1 IP网际协议

2.1.2 TCP协议

2.2 DNS协议

相关网络协议---各协议之间的关系图

2.3 SSL,HTTPS协议

2.3.1 HHTP协议安全性不足

2.3.2 HTTP协议安全性的解决办法

2.3.3 加密报文体

3.HTTP协议

3.1 HTTP是什么?

3.2 HTPP不是什么?

3.3 URI与URL

3.4 http报文结构

3.5 请求方法

3.6 响应状态码

3.7 http请求头

3.8 无状态与身份认证

4. HTTP协议总结

4.1 HTTP协议特点

4.2 HTTP/1.1的优点

4.3 HTTP/1.1的缺点


1. 了解web和网络基础

  • 有客户端和服务端双方参与交互

  • 客户端发送请求:request

  • 服务端根据请求给出响应:response

  • 请求通过URL来指定要获取都得资源

  • 响应内容可以是HTML网页,或者用json表示的数据或者其他二进制文件内容

  • Web使用一种名为HTTP的协议作为规范,完成从客户端到服务端的一系列运作流程,而协议是指定规则的约定。Web是建立在HTTP协议上的通信。

1.1 web万维网和HTTP协议

 www万维网诞生

诞生于:1989年3月,蒂姆·伯纳斯-李 博士的一篇论文,提出了让远隔两地的研究者们共享知识的设想。

最初的理念:借助多文档之间的相关联形成超文本(HyperText),连成可互相参阅的WWW(World Wide Web,万维网)。

HTTP:HyperText Transfer Protocol,超文本传输协议。 HTML:HyperText Markup Language,超文本标记语言。 URL:Uniform Resource Locator,统一资源定位符。

1.2 HTTP的历史和版本

1.3 当下http协议的使用现状

  • 场景:除了网页,承载更多的互联网应用场景

  • 前端:不再依赖浏览器,可以是手机app,客户端或者一另个服务器

  • 传输方式:Ajax的兴起改变了原本的同步请求模式

  • 传输内容:HTML网页,二进制文件以外也可以依靠Json表示更广泛的内容

  • 数据安全:HTTP+SSL组成HTTPS协议,同时扩展更多的密码学能力

2. 与http相关的的协议

2.1 TCP/IP协议族

2.1.1 IP网际协议

  • IP(Internet Protocol)协议位于网络层,负责将数据包递给对方。

  • 任何一个参与到网络上的设备都会用到IP协议,为系统分配对应的IP地址。

  • IP协议和IP地址不是一回事,IP地址是表明网络中每个设备的标签。

  • IP地址需要转换成网卡的物理地址(MAC地址)才能真正完成数据通信。实际上网络中数据传输是异常复杂的,没有人能够完全跟踪整个传输过程,网络中大小网络、广域网、城域网、局域网等嵌套,需要路由才能真正传输到目的地。

  • IP地址目前分为 IPV4 和 IPV6两个版本。

2.1.2 TCP协议

  • TCP位于传输层,提供可靠的字节流服务。

  • 将大的数据分割成报文段,并将数据可靠的传输给对方。

  • 保证可靠----三次握手策略

2.2 DNS协议

让IP地址更容易被记住的DNS协议

  • DNS(Domain Name System)域名服务,与HTTP一样,位于TCP/IP分层的应用层的协议,它负责提供域名到IP地址的解析服务。

  • 域名:www.baidu.com, pic.baidu.com, sports.sina.com.cn

  • 根域名: com cn com.cn org tech info me

  • 级域名:baidu.com sina.com.cn qq.com 163.com 12306.cn

  • 子域名:pic.baidu.com sports.sina.com.cn news.qq.com

  • 如果要使用域名完成网络通讯,必须先从域名服务器获取域名对应的IP地址。

相关网络协议---各协议之间的关系图

2.3 SSL,HTTPS协议

2.3.1 HHTP协议安全性不足

  • 公开。HTTP是一个公开的协议,任何人都可以随时了解协议的细节,并可以模仿、模拟、伪造HTTP请求获取服务端资源。

  • 网络。HTTP是为网络数据传输而生的,根本职责就是传输数据,那么网络上任何一个 传输节点,包括代理、网管、路由器等都可以随时知道HTTP传输的内容。

  • 明文。HTTP/1.1协议本身没有加密规则,所以整个报文体都是明文在网络上流转。

2.3.2 HTTP协议安全性的解决办法

SSL/TSL安全传输

  • SSL(Secure Socket Layer) 安全 套接层

  • TSL(Transport Layer Security)安全传输层协议

  • HTTP与SSL或TSL组合使用,建立安全通路

    • SSL+HTTP = HTTPS

    • HTTPS(HTTP Secure)超文本传输安全协议

  • SSL通路与TCP一样,为了安全和完整性都牺牲了一些效率

2.3.3 加密报文体

  • HTTP协议的报文分为:报文头、报文体

  • 针对报文体的明文内容,结合密码学相关技术

  • 只将报文体的内容进行加密,保证数据安全

  • 这种方式需要客户端、服务端单独支持,提高了系统实现的复杂度

  • 而密钥和加密算法可以完全私有化,安全性相对较高

实际应用中,已经更多采用两种方式结合,即加密通讯又加密报文体

3.HTTP协议

3.1 HTTP是什么?

HyperText Transfer Protocol ,超文本传输协议

  • 协议

    • 有两个或者多个参与者

    • 定义了交互的约定和规范

  • 传输

    • http是一个专门用来在两点之间传输内容的协议

    • 包括请求方和响应方

  • 超文本

    • http不仅可以传输文本

    • 还可以传输音频、视频、文件

3.2 HTPP不是什么?

  • 不是浏览器、不是操作系统

    • http只是浏览器等客户端传输数据时使用的规范

  • 不是HTML

    • http和html经常一起出现但是他们不一样

    • html是超文本的载体,传输的内容

  • 不是编程语言

    • http不是java、python这种编程语言

    • 但是可以用语言来模拟http请求

3.3 URI与URL

URI(Uniform Resource Identifier),统一资源标识符

URL(Uniform Resource Locator),统一资源定位符,也就是网址

3.4 http报文结构

一个例子

3.5 请求方法

3.6 响应状态码

3.7 http请求头

Http首部

重要的HTTP首部参数

3.8 无状态与身份认证

4. HTTP协议总结

4.1 HTTP协议特点

  • 灵活可扩展、首部、内容、状态码都可自定义

  • 可靠的传输协议、基于TCP协议

  • 是一个应用层协议,与ftp、smtp相比应用更广泛

  • 采用请求应答通讯模式,客户端和服务端(C/S)

  • 无状态的协议

  • 实体数据可分段、可压缩、支持多语言、灵活编码

4.2 HTTP/1.1的优点

  • 简单、灵活、容易扩展

  • 应用广泛、不受编程语言、软件、硬件的约束

  • 无状态减轻服务器的压力、更容易组成服务器集群

  • 明文传输让协议更容易理解、更直观、调试更容易

4.3 HTTP/1.1的缺点

  • 无状态需要Cookie技术支持

  • 明文传输让数据毫无隐私可言、不安全

  • 没有客户身份验证、容易伪装、篡改

  • 请求应答模式、对高并发网络传输有挑战

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伏颜.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值