1. HTTP定义

  HyperText Transfer Protocol,超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。

  HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。

  使用TCP端口为:80

2. HTTP历史

  

3. HTTP多路复用

  

  https://blog.csdn.net/xiaoming100001/article/details/81109617

  多路复用:通过单一的HTTP/2连接请求发起多重的请求-响应消息,多个请求stream共享一个TCP连接,实现多留并行而不是依赖建立多个TCP连接。

4. HTTP报文格式

 

5. HTTP通信传输

超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据(三次握手,四次挥手)

    

  1. 客户端输入URL回车,
  2. DNS解析域名得到服务器的IP地址
  3. 服务器在80端口监听客户端请求,端口通过TCP/IP协议(可以通过Socket实现)建立连接。
  4. 报文从运用层传送到运输层,运输层通过TCP三次握手和服务器建立连接,四次挥手释放连接。

5. 缺点

  HTTP协议基于TCP进行传输的,其中传输的内容全都裸露在报文中,如果我们获取了一个HTTP消息体,那我们可以知道消息体中所有的内容。这其实存在很大的风险,如果HTTP消息体被劫持,那么整个传输过程将面临:

(1) 窃听风险(eavesdropping):第三方可以获知通信内容。

(2) 篡改风险(tampering):第三方可以修改通信内容。

(3) 冒充风险(pretending):第三方可以冒充他人身份参与通信。

  正因为HTTP协议的这个缺点, HTTP变成了一种不安全的协议。

参考网址

  1. HTTP和HTTPS协议,看一篇就够了
  2. HTTPS协议的实现原理

最新文章

  1. windows消息和消息队列
  2. Java web项目引用java项目,类型找不到
  3. [转载]Jmeter那点事·ForEach和If控制器
  4. datatable 的ajax修改参数,post可以传参处理
  5. Android res资源文件夹的知识积累
  6. JSON和XML的比较
  7. Remember the Word,LA3942(Trie树+DP)
  8. Jquery弹出窗口
  9. 第二十八条:利用有限制通配符来提升API的灵活性
  10. rabbitMq交换机direct、topics
  11. eclipse添加spring boot 插件
  12. CPP全面总结(涵盖C++11标准)
  13. Nginx单向认证的安装配置
  14. mysql存储过程之游标
  15. MySQL数据库----表与表之间的关系
  16. 第四章 数据更新 4-1 数据的插入(INSERT 语句的使用方法)
  17. HDU 2571 命运 (入门dp)
  18. Linux make语法补充
  19. javascript 动态脚本添加
  20. go语言基础之Printf和Println的区别

热门文章

  1. 如何让 FFmpeg 支持异步并行转码、截图等等操作?
  2. 在.net中读写config文件的各种方法【转】
  3. F#周报2019年第24期
  4. 《 .NET并发编程实战》实战习题集 - 5 - 并发查找等待算法
  5. C++矢量图形库系列(转)
  6. vue 脚手架搭建步骤!
  7. webpack中使用DefinePlugin来传递构建的环境变量给源代码使用
  8. .NET Core 收徒,有缘者,可破瓶颈
  9. 小鸟初学Shell编程(三)脚本不同执行方式的影响
  10. 怎样解决非管理员账户添加Notepad++右键菜单的批处理的问题?