Python常见面试题三:网络编程和前端部分

目录

1. AJAX 是什么,如何使用 AJAX?

2. 常见的HTTP状态码有哪些?

3. Post和Get区别?

4. cookie 和 session 的区别?

5. 创建一个简单 TCP 服务器需要的流程


1. AJAX 是什么,如何使用 AJAX?

ajax (异步的 javascript 和 xml) 能够刷新局部网页数据而不是重新加载整个网页。

第一步,创建 xmlhttprequest 对象,var xmlhttp = new XMLHttpRequest();XMLHttpRequest 对象用来和服务器交换数据。

第二步,使用 xmlhttprequest 对象的 open() 和 send() 方法发送资源请求给服务器。

第三步,使用 xmlhttprequest 对象的 responseText 或 responseXML 属性获得服务器的响应。

第四步,onreadystatechange 函数,当发送请求到服务器,我们想要服务器响应执行一些功能就需要使用 onreadystatechange函数,每次 xmlhttprequest 对象的 readyState 发生改变都会触发 onreadystatechange 函数。

2. 常见的HTTP状态码有哪些?

200 OK

301 Moved Permanently

302 Found

304 Not Modified

307 Temporary Redirect

400 Bad Request

401 Unauthorized

403 Forbidden

404 Not Found

410 Gone

500 Internal Server Error

501 Not Implemented

3. Post和Get区别?

1). 定义

GET 请求,请求的数据会附加在 URL 之后,以 ? 分割 URL 和传输数据,多个参数用 & 连接。URL 的编码格式采用的是 ASCII编码,而不是 uniclde,即是说所有的非 ASCII 字符都要编码之后再传输。

POST请求:POST 请求会把请求的数据放置在 HTTP 请求包的包体中。上面的 item=bandsaw 就是实际的传输数据。

因此,GET 请求的数据会暴露在地址栏中,而 POST 请求则不会。

2). 传输数据的大小

在 HTTP 规范中,没有对 URL 的长度和传输的数据大小进行限制。但是在实际开发过程中,对于 GET,特定的浏览器和服务器对 URL 的长度有限制。因此,在使用 GET 请求时,传输数据会受到 URL 长度的限制。

对于 POST,由于不是 URL 传值,理论上是不会受限制的,但是实际上各个服务器会规定对 POST 提交数据大小进行限制,Apache、IIS 都有各自的配置。

3). 安全性

POST 的安全性比 GET 的高。这里的安全是指真正的安全,而不同于上面 GET 提到的安全方法中的安全,上面提到的安全仅仅是不修改服务器的数据。比如,在进行登录操作,通过 GET 请求,用户名和密码都会暴露再 URL 上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。除此之外,GET 请求提交的数据还可能会造成 Cross-site request frogery 攻击。

4. cookie 和 session 的区别?

1). cookie 数据存放在客户的浏览器上,session 数据放在服务器上。

2). cookie 不是很安全,别人可以分析存放在本地的 cookie 并进行 cookie 欺骗考虑到安全应当使用 session。

3). session 会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能考虑到减轻服务器性能方面,应当使用cookie。

4). 单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 cookie。

5). 建议:
     将登陆信息等重要信息存放为 session
     其他信息如果需要保留,可以放在 cookie 中

5. 创建一个简单 TCP 服务器需要的流程

1). socket 创建一个套接字

2). bind 绑定 ip 和 port

3). listen 使套接字变为可以被动链接

4). accept 等待客户端的链接

5). recv/send 接收发送数据

参考及转载地址

猜你喜欢

转载自blog.csdn.net/Sun_Hui_/article/details/81739028