JAVAEE_03_HTTP
HTTP\HTTPS\TCP
HTTP协议
什么是HTTP协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP是一个基于TCP/IP通信协议来传递数据的(HTML 文件, 图片文件, 查询结果等)
* HTTP 工作原理
- HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
- Web服务器有:Apache服务器,IIS服务器,Tomcat服务器 等。
- Web服务器根据接收到的请求后,向客户端发送相应的响应信息。
- HTTP默认端口号为80,但是也可以改为8080或者其他端口。
* HTTP三点注意事项:
- HTTP是无连接的:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
- HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的 MIME-type 内容类型。
- HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先
前信息时它的应答就比较快。
HTTPS
* 什么是HTTPS
- HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了保证这些隐私数据能加密传输,于是网景公司
设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
- HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
- HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全; 另一种就是确认网站的真实性。
- HTTPS和HTTP的区别主要如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
TCP协议
* 什么是TCP协议
- TCP: 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
- 浏览器与服务器使用 TCP/IP 协议来链接因特网。浏览器使用 TCP/IP 协议进入服务器,服务器使用 TCP/IP 协议来发送 HTML 到浏览器。
- TCP 是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。
TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
- 原因: 服务器和客户端之间要通过发包确定一个稳定连接。这个稳定连接就是,确认对方都收到自己的包。
第一次握手,客户端给服务器发包。 此时服务器确认自己可以接收客户端的包,客户端不确认服务器是否接收到了自己发的包。
第二次握手,服务器端回复客户端。 此时客户端确认自己发的包被服务器收到,也确认自己可以正常接收服务器包,客户端对此次通信没有疑问了。服务器可以确认自己能接收到客户端的包,但不能确认客户端能否接收
自己发的包。第三次握手,客户端回复服务器。 客户端已经没有疑问了,服务器也确认刚刚客户端收到了自己的包。两边都没有问题,开始通信。
采用两次握手是不行的,两次握手只能保证单向连接是畅通的。原因就是上面说的实效的连接请求的特殊情况。
在百度搜索框中输入数据按下回车发生的事情?
DNS 解析:将域名解析成 IP 地址
TCP 连接:TCP 三次握手
发送 HTTP 请求
服务器处理HTTP请求并返回 HTTP 报文
浏览器解析渲染页面
断开连接:TCP 四次挥手
最新文章
- atitit.管理学三大定律:彼得原理、墨菲定律、帕金森定律
- centos 7 u盘安装
- Winform(C#.NET)自动更新组件的使用及部分功能实现(续)
- TermServDevices错误
- 关于JLINK固件丢失或升级固件后提示Clone的解决办法
- 一个简单json数据提交实例
- TC srm 673 300 div1
- 相见恨晚——MarkDown
- CollectionUtils工具类的常用方法
- 用CMD打开chrome并导航到百度(golang)
- 【原创】分布式之elk日志架构的演进
- python 使用 sorted 对 列表嵌套元组的数据进行排序
- grep配置颜色显示
- angularjs指令中scope参数 true、false、{} 的区别详解
- vue经验 - 那些自己给自己挖的深坑
- springmvc+druid+dataSource配置的两种方式
- 平铺式窗口管理器 Musca 初体验
- Think in java.chm 第14章 多线程
- 转:介绍几个著名的实用的Java反编译工具,提供下载
- 20155217 实验四《Java面向对象程序设计》实验报告
热门文章
- 【Azure 云服务】如何从Azure Cloud Service中获取项目的部署文件
- day1 分布式基础概念
- Django Admin 实现三级联动的示例代码(省市区)===>;小白级
- TKMybatis
- Python 学习笔记(2)
- Centos7.7下安装Python3.7 并兼容python2.7
- `curl -L` 解决 GitHub 的 raw.githubusercontent.com 无法连接问题
- Elasticsearch常用API
- .Net Core 处理跨域问题Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource
- go中waitGroup源码解读