常见的状态码:
100—199:信息状态码,表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。
200—299:成功状态码,表示成功接收请求并已完成整个处理过程,常用200(OK)成功接收。
300—399:重定向状态码,例如请求的资源已经移动一个新地址,常用302、307和304。
400—499:客户端的请求有错误,常见404(Not Found),403(Fobidden)。
500—599:服务器端出现错误,常用500。
200 OK——客户端发来的请求在服务器端被正常处理
在响应报文中,随状态码返回的信息会因方法的不同而改变。比如,使用GET时对应请求资源的实体会作为响应返回;使用HEAD时,在响应中只返回首部,不返回实体的主体部分。
204 No Content——服务器接收的请求已成功处理,但返回的响应报文中不含实体的主体部分,即无资源可返回
一般在只需从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用。
206 Partial Content——服务器成功执行了客户端发来的范围GET请求
301 Moved Permanently——永久重定向(请求的资源已被分配新的URL,以后应使用资源现在所指的URL)
302 Found——临时重定向(请求的资源已被分配新的URL,希望用户本次使用新的URL)
303 See Other——由于请求对应的资源存在着另一个URL,应使用GET方法定向获取请求的资源
与302功能相同,但不同点在于303要求使用GET方法获取资源。
304 Not Modified——客户端发送附带条件的请求时,,服务器端允许请求访问资源,但请求未满足条件
304其实与重定向没有关系。
307 Temporary Redirect——临时重定向,但请求方式不会从POST变为GET
与302含义相同,但是302规定的禁止POST变为GET并不被遵守,而307严格遵守不会从POST变为GET。
400 Bad Request——请求报文中存在语法错误
401 Unauthorized——发送的请求需有通过HTTP认证的认证信息
当浏览器初次接收401,会弹出认证用的对话窗口;若之前已进行过1次请求,则表示用户认证失败。返回含有401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部用以质询用户信息。
403 Forbidden——对请求资源的访问被服务器拒绝了
404 Not Found——服务器上无法找到请求的资源
500 Internal Server Error——服务器在执行请求时发生错误
503 Service Unavailable——服务器暂处于超负载或正在进行停机维护,现在无法处理请求
https的加密过程:
HTTPS采用的就是对称加密和非对称加密的混合加密方法。
对称加密:
对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)
非对称加密:
非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。
将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。
具体过程:
1:客户端先向服务端发送加密通信请求(其中包括SSL/TSL版本号;加密套件,即客户端支持的加密算法列表;产生一个随机数,即第一位随机数;有一个client hello字符串)
2,服务器收到请求后,向客户端发出响应(确认SSL/TSL版本号,如果客户端不支持,就关闭通信;确认的加密算法列表;生成一个随机数,即第二位随机数)
3:服务器再向客户端发送数字证书(服务器会把自己的公钥注册到CA(第三方证书机构),然后CA拿自己的私钥对服务器的公钥进行处理并颁发数字证书)
4.服务器发送公钥给客户端
5.服务器发送hello done,表示发送完毕
6.客户端收到服务端一系列响应后,确认数字证书和公钥,没有问题后向服务端发送(生成一个随机数,即第三位随机数或者预主密钥,会对公钥进行加密)
7:服务端收到客户端数据后,使用私钥对加密后的预主密钥进行解密
8:服务端向客服端发送(加密通信算法改变通知,以后通过会话密钥通信)
dns的解析过程:
- 查看本地dns缓存,看缓存中是否有解析数据
- 查看本地hosts文件
- 本机固定的dns’服务器(路由器)找13台根域服务器
- 根域找到com域,com找到baidu域名,给你返回结果,返回给你主机
- 和百度服务器建立tcp可靠连接,三次握手(keep-alive,request,response),最终通过浏览器实现解析页面