http相关
文章目录HTTP方法的幂等性http中GET和POST的区别原理上请求数据位置请求数据大小安全性效率OSI七层模型以及TCP/IP四层模型TCP三次握手四次挥手三次握手四次挥手TCP三次握手四次挥手原因三次握手四次挥手TCP为什么TIME_WAIT状态还需要等2MSL(Maximum Segment Lifetime 报文最长存活时间)后才能返回到CLOSED状态保证A发送的最有一个ACK报文段能够到达B防止已失效的连接请求报文段出现在新的连接中http和https的区别https实现原理session和cookie的区别存放地点安全性服务器性能使用方式联系参考dos攻击HTTP状态码缓存相关的http首部通用缓存首部实体缓存首部条件首部满足条件后返回对象HTTP方法的幂等性HTTP方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用。http中GET和POST的区别原理上GET用于信息获取。POST表示可能修改变服务器上的资源的请求。请求数据位置GET请求的数据会附在URL之后的查询字符串中以?分割URL和传输数据参数之间以相连。POST把提交的数据则放置在是HTTP报文的body中编码方式不限常用application/x-www-form-urlencodedapplication/jsonmultipart/form-datatext/xml等。请求数据大小因为GET是通过URL提交数据而HTTP协议规范没有对URL长度进行限制但url长度受特定的浏览器及服务器的限制1024字节。理论上讲POST是没有大小限制的HTTP协议规范也没有进行大小限制起限制作用的是服务器处理程序的能力80K/100K。安全性使用GET方法时浏览器可能会缓存地址等信息留下历史记录。POST方法则不会进行缓存。效率get发送一次报文post发送两次get效率高。http://www.oschina.net/news/77354/http-get-post-differentOSI七层模型以及TCP/IP四层模型TCP头TCP数据报包含源端和目的端的端口号用于寻找发端和收端的应用进程IP头用于寻找网络中目的主机在逻辑网络中的位置LLC头负责识别网络层协议然后对它们进行封装。LLC报头告诉数据链路层一旦帧被接收到时应当对数据包做何处理。它的工作原理是这样的主机接收到帧并查看其LLC报头以找到数据包的目的地比如说在网络层的IP协议。MAC头用于寻找主机在网络设备中的位置TCP传输控制协议传输效率低可靠性强用于传输可靠性要求高数据量大的数据UDP用户数据报协议与TCP特性恰恰相反用于传输可靠性要求不高数据量小的数据如QQ聊天数据就是通过这种方式传输的。http://www.cnblogs.com/commanderzhu/p/4821555.htmlTCP三次握手四次挥手三次握手SYN 1,SEND SEQ x,client SYN_SENDSYN 1,ACK 1,SEND SEQ y,REC SEQ x1,server SYN_RECVSYN 0,ACK 1,REC SEQ y1,clientserver ESTABLISHED四次挥手SEND SEQ x2,REC SEQ y1,client FIN_WAIT_1REC SEQ SEND SEQ 1,client FIN_WAIT_2SEND SEQ y1,server LAST_ACKREC SEQ SEND SEQ1,client TIME_WAIT server CLOSED client等待2MSL后依然没有回复则证明服务端已正常关闭客户端此时关闭连接进入CLOSED状态。TCP三次握手四次挥手原因三次握手防止A已失效的连接请求传到B产生错误所以A需要对B的确认进行确认。四次挥手TCP全双工通信前两次挥手关闭A到B的通信这个时候B到A仍然可以发送数据。TCP为什么TIME_WAIT状态还需要等2MSL(Maximum Segment Lifetime 报文最长存活时间)后才能返回到CLOSED状态保证A发送的最有一个ACK报文段能够到达B这个ACK报文段有可能丢失因而使处在LAST-ACK状态的B收不到对已发送的FIN和ACK 报文段的确认B会超时重传这个FIN和ACK报文段而A就能在2MSL时间内收到这个重传的ACKFIN报文段接着A重传一次确认。防止已失效的连接请求报文段出现在新的连接中A在发送完最有一个ACK报文段后再经过2MSL就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。http和https的区别HTTP 的URL以http://开头而 HTTPS 的URL以https://开头。HTTP 标准端口是 80 而 HTTPS 的标准端口是 443。在 OSI 网络模型中HTTP 工作于应用层而 HTTPS 工作在传输层。HTTP 是不安全的而 HTTPS 是安全的。HTTP 无需加密而 HTTPS 对传输的数据进行加密。HTTP 无需证书而 HTTPS 需要认证证书。https实现原理C/S连接过程C/S http握手。S发送CA证书给C。证书为CA机构颁发。包含S的公钥、组织信息、签发的CA信息、有效时间、证书序列号、签名(CA的明文hash之后用CA的私钥加密)。C收到证书后用相同的函数hash和CA公钥解密签名对比验证CA的有效性。C用S的公钥加密之后业务通信的对称加密算法和对称秘钥。S用S的私钥解密获得对称秘钥。C/S 使用对称秘钥加密通信。参考1参考2动作用什么钥匙主要作用解决的问题典型算法 / 场景加密公钥或对称密钥把明文变成密文保密性别人看不到内容RSA-OAEP、ECIES、SM2 加密实际工程里常用 AES 加密数据再用 RSA/SM2 加密 AES 密钥解密私钥或对称密钥把密文还原成明文只有合法接收方能读取内容RSA-OAEP 解密、SM2 解密、AES-GCM/AES-CBC 解密签名私钥对内容生成一段签名值身份认证 防篡改 不可抵赖RSA-PSS、RSA-SHA256、ECDSA、Ed25519、SM2 签名验签公钥验证签名是否匹配原文判断“是不是对应私钥签的”以及“内容有没有被改”RSA-PSS 验签、ECDSA 验签、Ed25519 验签、SM2 验签session和cookie的区别存放地点cookie数据存放在客户的浏览器上session数据放在服务器上。安全性cookie不是很安全别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。服务器性能session会在一定时间内保存在服务器上。当访问增多会比较占用你服务器的性能考虑到减轻服务器性能方面应当使用COOKIE。使用方式将登陆信息等重要信息存放为SESSION其他信息如果需要保留可以放在COOKIE中联系cookie中保存session id。如果cookie被人为的禁止有两种解决方法1、URL重写就是把session id直接附加在URL路径的后面2、服务器会自动修改表单添加一个隐藏字段以便在表单提交时能够把session id传递回服务器。参考http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.htmldos攻击http://blog.csdn.net/codeforme/article/details/8749832HTTP状态码2** 成功操作被成功接受或者处理。3** 重定向需要进一步操作已完成请求。4** 客户端错误包含语法错误或者无法完成的请求。5** 服务器错误服务器在处理请求的过程中发生错误。https://www.w3cschool.cn/http_api_guide/ny61rozt.html缓存相关的http首部通用缓存首部Cache-Control用于岁报文传送缓存指示。Pragma类似前者不专用于缓存。实体缓存首部ETag与此实体相关的实体标记。Expires指定过期时间实体不再有效要从原始的源端再次获取次实体的日期和时间。Last-Modified这个实体最后一个被修改的日期和时间。条件首部满足条件后返回对象If-Modified-Since:如果从指定日期之后文档被修改过执行请求的方法。If-None-Match:如果已缓存的标签与服务器文档中的标签有所不同执行请求的方法。