Web开发中的网络知识(网络请求、登录和跨域)

一、网络请求

1.1 访问一个网页时发生了什么?

(1)域名解析成IP地址;

(2)与目的主机进行TCP连接(三次握手);

(3)发送与收取数据(浏览器与目的主机开始HTTP访问过程);

(4)与目的主机断开TCP连接(四次挥手);

参考链接:https://blog.csdn.net/u012862311/article/details/78753232

 

1.2 网络请求中的协议

二、登录和跨域
2.1 基于session登录

1. session定义:session就是一块在服务器端开辟的内存空间,相当于客户在服务器端的账户,它们被服务器保存到一个Map中,这个Map被称之为session缓存。

2. session的作用是来跟踪用户的操作状态, 比如:服务器端要知道一个网站当前有多少用户在线。我们知道一个用户就一个客户端,那么也就是说服务器端要知道有多少客户端正在访问本网站,这样服务器端必然要跟踪每一个客户端的状态。session ID唯一,可用于区分每一个客户端,sessionID会随着应答一起发到客户端并存放到客户端的内存中,这块客户端的内存就是我们经常说的cookie,下次用户发出请求时,浏览器通过一定规则将本地cookie里的session id发送,一一匹配,这样服务器看到 sessionID后到内存寻找,找到了就使用此内存中的数据,否则视为第一次访问本网站。

3. session有效时间默认为30分钟,可自定义,如果不设置,浏览器关闭则删除。

参考链接:https://segmentfault.com/q/1010000008691659/a-1020000008691872

2.2. 基于Token(OAuth2.0)登录
参考链接:
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Cookies
https://github.com/jeansfish/RFC6749.zh-cn/blob/master/TableofContents.md
https://dev.mi.com/docs/passport/oauth2/

OAuth2.0流程

 

 

2.3 跨域

1. 涉及到访问控制( CORS )
2. 参考链接: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
3. 跨域流程

 

参考资料:

https://cn.udacity.com/course/networking-for-web-developers--ud256
https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/
http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html

posted @ 2018-07-30 10:36  qinsafefy  阅读(973)  评论(0编辑  收藏  举报