http
1.网络通信中涉及的协议非常多,不同的协议又有不同的功能,按照不同的协议将协议栈分为五层
①应用层:代码应用中约定的传输格式
②传输层:不考虑中间过程,只考虑起点和终点
③网络层:比较遥远的两台主机,怎么将数据传输过来
④数据链路层:相邻主机之间的通信
⑤物理层:物理设施,网线,光纤,电磁波
2.由于客户端和服务器是两个主机上面两个不同程序,就需要保证客户端给服务器发送的消息,服务器能理解其含义,服务器给客户端返回的消息,客户端也能理解,因此协议诞生
3.HTTP协议是应用层协议,由程序员自己定
4.HTTP协议格式
①HTTP请求:
·首行:方法+url+版本
·Header:由键值对组成,用:+ 空格分隔每个键值对,描述HTTP中一些属性
·空行:表示Header的结束
·Body:对于GET请求一般没有body,对于POST请求有body
②HTTP响应
·首行:版本号+状态码+状态码解释
·Header:请求的属性,用空格分隔
·空行:表示header的结束
·Body:返回html页面的内容
5.HTTP的方法
①GET--------获取资源
②POST--------传输实体主体
③PUT-----------传输文件
④HEAD----------获得报文首部
⑤DELETE---------删除文件
⑥OPTIONS---------询问支持的方法
⑦TRACT---------追踪路径
6.HTTP状态码
①1XX-------表示接收的信息正在处理
②2XX-------请求正常处理完毕
③3XX---------请求重定向
④4XX---------无法处理请求
⑤5XX--------处理请求出错
7.HTTP header内容
①Content-Type:数据类型(text/html等)
②Content-length:Body的长度
③Host:由客户端告知服务器请求的资源在哪个主机的哪个端口上
④User-Agent:声明用户的操作操作系统和浏览器版本信息
⑤referer:当前页面是从哪个页面跳转过来的
⑥location:告诉客户端接下来要去哪里访问,搭配3XX使用
8.Get和Post的区别
①get和post没有本质区别,大多数get可以换成post,但有的情况是不能换的,如上传大文件时
②get一般把用户自定义的数据放在query String中,而post则放在Body中,这也是对应get没有Body部分
③get一般设计成“幂等的”----》操作一次和操作几次结构是相等的。读取数据一般是幂等的,而修改数据一般是不幂等的
④get请求可以被请求,post不能被保存。
9.加密:为了保证数据安全,对明文进行加密,把明文字符进行转换,得到一串加密的字符串
加密分为对称加密和非对称加密
对称加密:加密和解密使用同一个密钥,由客户端生成后传给服务器,对称加密算法包括:DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法。
非对称加密:包括公钥和私钥,使用公钥加密,私钥解密。或使用私钥加密,公钥解密。非对称加密算法包括:DE算法,RSA算法,EIGamal算法