小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
请求:Request请求头数据体
- 请求⽅式url协议版本
- POST /path?a=1&b=2 HTTP1.1
- Host:www.baidu.com
- Connection: keep-alive
- User-Agent:asdasdasd
- Cookie
传⽂件的⼀些信息
- GET/POST——HEAD,PUT,DELETE
- 响应:Response
- 响应头
- 数据体
- 协议版本 状态码 message
- 属性:值
Get与Post请求⽅式的区别
- 是基于什么前提的?如果什么前提都没有,GET和POST⼏乎没有什么区别
- 如果是基于RFC规范的。
- 理论上:
- get是⽤来获取数据的,post是⽤来发送数据的
- 实现上:
- GET的数据在URL是可⻅的。POST请求不显示在URL中
- GET对⻓度是有限制的,POST⻓度是⽆限的。
- GET请求的数据可以收藏为书签,post请求到的数据不可收藏为书签。
- GET请求后,按后退按钮、刷新按钮⽆影响,post数据会被重新提交。
- GET编码类型:application/x-www-form-url
- post的编码类型:有很多种。encodeapplication/x-www-form-urlencodedmultipart/form-data
- GET历史参数会被保留在浏览器⾥,psot不会保存在浏览器中的。
- GET只允许ASCII.post没有编码限制,允许发⼆进制的。
- GET与POST相⽐,GET安全性较差,因为所发的数据是URL的⼀部分。
Cookie与Session
- Cookie是有限制的,存在浏览器⾥的,可以⻓期存储的 缺点:如果某个坏⼈,复制了我浏览器⾥的cookie,他就可以在他的电脑上登录我的账号了
- 数据存在Session上也有缺点,⽤户量很⼤的时候,服务器端很耗资源的。
B/S结构
- Browser/Server——Browser只负责内容的展示,Server负责提供内容。
C/S结构
- Client/Server——Client只负责内容的展示,Server负责提供内容。
浏览器向服务器请求⼀个⻚⾯的本质是什么?
www.baidu.com- 服务器接收到这个请求后,服务器想要把这个⻚⾯的内容(HTML格式的字符串)返回给浏览器。
- ⻚⾯的字符串存在哪⾥呢?存在HTML⽂件⾥。例如:index.html
- 服务器端要读取⽂件。
- 将读取出来的内容返回给浏览器。
跨域访问资源
- 跨域请求的资源
- 后端接⼝的数据。
- 其它域的cookie
- 其它域的缓存
- 怎样算跨域?
- ⻚⾯本身:有协议(http/https),域名,端⼝
- 要请求的数据:
http://www.baidu.com:80协议,域名,端⼝这三个,有任意⼀个不⼀样就算跨域。
解决跨域
- 后端(别⼈家的)配合我们进⾏跨域。
- JSONP(正常的情况,返回的数据都是JSON格式。JSONP是⼀种特殊的格式。)
- 后端设置Access-Control-Allow-Origin属性以⽀持跨域。
- 后端不配合我们进⾏跨域
- iframe(只能显示,不能控制)
- 通过后端代理