HTTP,用于约束信息在网络中的传播
HTTP约束的查看分为两个部分:
-
请求部分相关信息
- 请求行:请求方式 请求路径 协议版本号
- 请求头:客户端浏览器要告诉服务器的一些信息,name:value的形式
User-Agent:代表客户端浏览器的类型
Referer:当前请求是由那个页面发出的 - 请求实体:请求过程中携带的数据
-
响应部分相关信息
- 响应行:协议版本号 响应状态码 状态码描述信息
- 响应头:服务器告知浏览器的一些信息
Location:表示重定向是客户端需要重新访问的新地址
Content-Type:响应内容的格式及使用的编码方式
响应实体:表示响应的具体内容 -
HTTP中支持的八种请求方式
GET 请求指定的页面信息,并返回实体主页
head 类似于get请求,只不过返回的响应中没有具体的内容,用于获取接头
post 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中,post请求可能会导致新的资源的建立和或已有资源的修改
put 从客户端向服务器传送的数据取代指定的文档的内容
delete 请求服务器删除指定的页面
connect HTTP/1.1协议中预留给能够将连接改为普通方式的代理服务器
options 允许客户端查看服务器的性能
tarce 回显服务器收到的请求,主要用于测试或诊断 -
URL和URI的区别
- URI (Universal Resource Identifier 统一资源标识符 用来标识抽象或物理资源的一个紧凑字符串,是一个资源例如张三是个总经理)
- URL (Universal Resource Locator 统一资源定位符 一种定位资源的主要访问机制的字符串,一个标准的URL必须包括:protocol、host、port、path、parameter、anchor,是一个地址,例如张三是哪个地区那个公司的总经理办公室)
- URN (Universal Resource Name 统一资源定位符,通过特定命名空间中的唯一名称或id来标识资源,例如身份证就是一个URN)
URI包括URL和URN两个类别,URL是URI的子集,所以URL一定是URI,而URI不一定是URL;
-
http和https的区别:
- HTTPS(Hyper Text Transfer Protocal over Secure Socket Layer)是安全套接字层超文本传输协议,以安全为目标的HTTP通道,简单讲是HTTP的安全版本;
- http协议喜欢书的数据都是未加密的,也就是明文,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议的信息明文传输安全;
- HTTPS需要申请证书:https协议需要到CA申请证书,一般免费证书很少,因而需要一定费用。
- 端口不同:HTTP使用的是最常见的80端口,而HTTPS连接使用的是443端口;
- 安全性不同:HTTP的连接很简单,是无状态的。而HTTPS协议是SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全;
HTTPS的工作原理
1.客户端发起HTTPS请求(用户在浏览器里输入一个HTTPS网址,然后连接到服务器端的443端口)
2.服务端的配置(采用HTTPS协议的服务器必须要有一套数字证书,这套证书其实就是一对公钥和私钥,就像一把钥匙和一个锁,但是只有你一个人有这把钥匙,你可以把锁给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,只有你才能看到被锁锁起来的东西)
3.传送证书(包含很多信息,例如证书的颁发机构,过期时间等)
4.客户端解析证书(由客户端的TLS来完成,首先验证公钥是否有效,如果发现异常则弹出一个警告框,提示证书存在问题,没问题的话就生成一个随机数,然后用证书对该随机值进行加密)
5.传送加密信息(传送的是用证书加密后的随机值,目的就是让服务器端得到这个随机值,之后客户端和服务端之间的通信就可以通过这个随机值进行加密解密)
6.服务端解密信息(服务端用私钥解密后,得到客户端传来的随机值,然后把内容通过该值进行对称加密;
对称加密:将信息和私钥通过某种算法混合在一起,除非知道私钥,不然呢无法获取内容)
7.传输加密后的信息(这部分传输的是服务端用私钥加密后的信息,可以在客户端被还原)
8.客户端解密信息(客户端用之前生成的私钥(随机值)解密服务端传来的信息,于是获取了解密后的内容,整个过程第三方即使监听到数据也束手无策)