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 请求成功, 301--资源(网页等)被永久转移到其它URL , 302--临时移动,与301类似。但资源只是临时被移动。客户端应继续使用原有URL, 304--未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息提供客户端希望只返回在指定日期之后修改的资源, 307--临时重定向。与302类似。使用GET请求重定向。400--客户端请求的语法错误,服务器无法理解, 401--请求要求用户身份认证, 403--服务器理解请求客户端,但是拒绝执行次请求, 404--服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置“您所请求的资源无法找到”的个性页面, 410--客户端请求的资源已经不存在。500--服务器内部错误,无法完成请求, 501--服务器不支持请求的功能,无法完成请求, 502--作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
3.Post和get区别?
GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是Unicode,即是说所有非ASCII字符都要编码之后再传输。
POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据,
因此,GET请求的数据会暴露咋地址栏中,而POST请求则不会。
4.传输数据的大小
在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中,对于GET,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求时,传输数据会受到URL长度的限制。
对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。
5.安全性
POST的安全性比GET的高。这里的安全是指真正的安全,而不同于上面GET提到安全方法中的安全,上面提到的安全仅仅是不修改服务器的数据。比如,在进行登录操作,通过GET请求,用户名和密码都会暴露在URL,因为登录页面有可能被浏览器环迅以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。除此之外,GET请求提交的数据还可能造成Cross-site request frogery攻击。
6.cookie 和session的区别?
1). cookie数据存放在客户的浏览器上,session数据放在服务器上。
2).cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session
3).session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能考虑到减轻服务器性能方面,应当适用COOKIE。
4).单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie。
5).建议:
将登陆信息等重要信息存放在session
其他信息如果要保留,可以放在cookie中
7.创建一个简单的tcp服务器需要的流程。
1).socket创建一个套接字
2).bind绑定IP和port
3).listen使套接字变为可以被动连接
4).accept等待客户端的连接
5).recv/send接收发送数据