<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          2021年12月PHP面試題總結(jié)

          共 3031字,需瀏覽 7分鐘

           ·

          2021-12-09 22:33

          01

          為什么要跨域?


          跨域,指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對(duì)JavaScript施加的安全限制。
          下表給出了與 URL http://store.company.com/dir/page.html 的源進(jìn)行對(duì)比的示例:
          URL???????????????????????????????????????結(jié)果??????原因
          http://store.company.com/dir2/other.html?同源?只有路徑不同
          http://store.company.com/dir/inner/another.html?同源?只有路徑不同
          https://store.company.com/secure.html?失敗?協(xié)議不同
          http://store.company.com:81/dir/etc.html?失敗?端口不同?(?http://?默認(rèn)端口是80)
          http://news.company.com/dir/other.html?失敗?主機(jī)不同

          02

          Socket為什么需要心跳?

          在smack里有個(gè)30s發(fā)送一個(gè)空消息的線程,同樣關(guān)于心跳包(keepalive)
            據(jù)網(wǎng)絡(luò)搜索到的資料解釋如下
          內(nèi)網(wǎng)機(jī)器如果不主動(dòng)向外發(fā)起連接,外網(wǎng)機(jī)沒(méi)法直連內(nèi)網(wǎng)的,這也是內(nèi)網(wǎng)機(jī)安全的原因之一,又因?yàn)槁酚善鲿?huì)把這個(gè)關(guān)系記錄下來(lái),但是過(guò)一段時(shí)間這個(gè)記錄可能會(huì)丟失 ,所有每一個(gè)客戶端每隔一定時(shí)間就會(huì)向服務(wù)器發(fā)送消息,以保證服務(wù)器可以隨時(shí)找到你,這東西被稱為心跳包。
          理論上說(shuō),這個(gè)連接是一直保持連接的,但是實(shí)際情況中,如果中間節(jié)點(diǎn)出現(xiàn)什么故障是難以知道的。更要命的是,有的節(jié)點(diǎn)(防火墻)會(huì)自動(dòng)把一定時(shí)間之內(nèi)沒(méi)有數(shù)據(jù)交互的連接給斷掉。在這個(gè)時(shí)候,就需要我們的心跳包了,用于維持長(zhǎng)連接,保活。在獲知了斷線之后,服務(wù)器邏輯可能需要做一些事情,比如斷線后的數(shù)據(jù)清理,重新連接……當(dāng)然,這個(gè)自然是要由邏輯層根據(jù)需求去做了。總的來(lái)說(shuō),心跳包主要也就是用于長(zhǎng)連接的保活和斷線處理。一般的應(yīng)用下,判定時(shí)間在30-40秒比較不錯(cuò)。如果實(shí)在要求高,那就在6-9秒。
          如果不主動(dòng)關(guān)閉socket的話,系統(tǒng)不會(huì)自動(dòng)關(guān)閉的,除非當(dāng)前進(jìn)程掛掉了,操作系統(tǒng)把占用的socket回收了才會(huì)關(guān)閉。為什么需要心跳連接主要是判斷當(dāng)前連接是否是有效的、可被使用的。在實(shí)際應(yīng)用中假設(shè)一段時(shí)間沒(méi)有數(shù)據(jù)傳輸時(shí)候理論上說(shuō)應(yīng)該連接是沒(méi)有問(wèn)題的,但是網(wǎng)絡(luò)復(fù)雜,中途出現(xiàn)問(wèn)題也是常見的,網(wǎng)線被掐斷了、對(duì)方進(jìn)程掛掉了、頻繁丟包等,這時(shí)候TCP連接是不可使用的,但是對(duì)于應(yīng)用層并不知道,如果需知道網(wǎng)絡(luò)情況則要很復(fù)雜的超時(shí)進(jìn)行了解,TCP從底層就實(shí)現(xiàn)了這樣的功能。心跳機(jī)制是TCP在一段時(shí)間間隔后發(fā)送確認(rèn)連接端是否還存在,如果存在的話就會(huì)回傳一個(gè)包確定網(wǎng)絡(luò)有效,如果心跳包有問(wèn)題,則通知上層應(yīng)用當(dāng)前網(wǎng)絡(luò)有問(wèn)題了。
          這取決于你的server端的超時(shí)配置, 每個(gè)socket連接都是長(zhǎng)連接,它是一個(gè)相當(dāng)占用系統(tǒng)資源的通信管道, 如果這個(gè)長(zhǎng)連接什么事也沒(méi)干硬是要占著資源,則server端可以選擇關(guān)閉這個(gè)連接,以省下資源讓更多的用戶連接進(jìn)來(lái)。更多面試講解,微信搜索【碼農(nóng)編程進(jìn)階筆記
          所以,即便客戶端的是采用死循環(huán)while(true)方式連到服務(wù)端,對(duì)于特定的客戶端和服務(wù)端類型來(lái)說(shuō)也需要一定時(shí)間間隔的心跳(告訴服務(wù)端,我還活著,雖然我沒(méi)干活也沒(méi)說(shuō)話,但別把我關(guān)了)

          03

          微信支付回調(diào)失敗該如何處理?

          他問(wèn)的是已經(jīng)支付成功后,但是回調(diào)失敗了。自己可以創(chuàng)建定時(shí)任務(wù)在每天的凌晨執(zhí)行,去微信那邊對(duì)賬,然后更新數(shù)據(jù)庫(kù)訂單狀態(tài)。


          04

          Mysql索引優(yōu)化使用like時(shí)用%開頭的,如何提高性能?


          ?https://www.cnblogs.com/mqfs/p/13097229.html


          05

          跨域的實(shí)現(xiàn)原理是什么

          ?https://www.cnblogs.com/fundebug/p/10329202.html


          06

          Nginx負(fù)載均衡時(shí)如何按時(shí)間段設(shè)置

          https://blog.csdn.net/jasonware/article/details/75044944


          07

          秒殺活動(dòng)中如何限制超買

          https://blog.csdn.net/mu_rain/article/details/80249010


          08

          用鎖表限制秒殺超買如何實(shí)現(xiàn)?


             https://blog.csdn.net/yyqhwr/article/details/106960605



          09

          分表時(shí),如何在兩張表中查詢數(shù)據(jù)??不用關(guān)聯(lián)表的情況。Union 和 distinct的區(qū)別是什么?


          參考這個(gè) https://bbs.csdn.net/topics/90484500

          1. 從用途上講它們都具有去重的效果

          2. 從效率上講:distinct通常不建議使用,效率較低;union all 和union 而言,union all效率更高;原因是:union 相當(dāng)于多表查詢出的數(shù)據(jù)進(jìn)行去重然后再進(jìn)行排序后返回,而union all是多表查詢合并去重后就直接返回

          3. 從單表還是多表上講:

            單表上有重復(fù)記錄只能使用distinct,多表查詢建議用union all


          10

          調(diào)用區(qū)塊鏈接口的安全措施,有那些實(shí)現(xiàn)方法?

          1. 使用MD5實(shí)現(xiàn)對(duì)接口加簽,目的是為了防止篡改數(shù)據(jù)。

          2. 基于網(wǎng)關(guān)實(shí)現(xiàn)黑明單與白名單攔截

          3. 可以使用rsa非對(duì)稱加密 公鑰和私鑰互換

          4. 如果是開放接口的話,可以采用oath2.0協(xié)議

          5. 使用Https協(xié)議加密傳輸,但是傳輸速度慢

          6. 對(duì)一些特殊字符實(shí)現(xiàn)過(guò)濾 防止xss、sql注入的攻擊

          7. 定期使用第三方安全掃描插件

          8. 接口采用dto、do實(shí)現(xiàn)參數(shù)轉(zhuǎn)化 ,達(dá)到敏感信息脫敏效果

          9. 使用token+圖形驗(yàn)證碼方法實(shí)現(xiàn)防止模擬請(qǐng)求

          10. 使用對(duì)ip訪問(wèn)實(shí)現(xiàn)接口的限流,對(duì)短時(shí)間內(nèi)同一個(gè)請(qǐng)求(ip)一直訪問(wèn)接口 進(jìn)行限制。


          11

          ?服務(wù)器受到dos攻擊,這個(gè)問(wèn)題如何應(yīng)付?

          看看你的服務(wù)的訪問(wèn)日志,在防火墻中加過(guò)濾,或者在web服務(wù)器中加過(guò)濾吧。方法有以下幾種。
          1. 對(duì)于特定的IP訪問(wèn)的情況,限制IP訪問(wèn)
          2. 限制同一IP在單位時(shí)間內(nèi)的訪問(wèn)次數(shù)
          3. 上級(jí)服務(wù)器,提高吞吐能力
          是消耗服務(wù)器資源為主還是純流量攻擊?消耗資源的可以通過(guò)配置防火墻過(guò)濾規(guī)則防御中小規(guī)模的攻擊。如果是純流量攻擊,考慮你用的是linode真心無(wú)解。即便你封了IP封了端口也沒(méi)用,人家不管你接不接受他的請(qǐng)求,他都會(huì)塞滿你的帶寬。linode必然認(rèn)為你是被流量攻擊或者消耗過(guò)多資源然后給你掛起。

          一往期精彩回顧

          [精選]PHP高級(jí)開發(fā)工程面試經(jīng)整理

          2021年最新大廠php+go面試題集(一)

          2021年最新大廠php+go面試題集(二)

          2021年最新大廠php+go面試題集(三)

          2021年最新大廠php+go面試題集(四)

          php程序員面試題(偏中級(jí)面試題)

          面試官問(wèn):如何防超賣,有幾種實(shí)現(xiàn)方式[精選]

          PHP高級(jí)開發(fā)工程面試經(jīng)整理

          穩(wěn)了!學(xué)會(huì)這些PHP面試題成功拿下offe

          淺談面試經(jīng)驗(yàn)(面試官角度)

          go面試題:第一天

          盤點(diǎn)2021年P(guān)HP開發(fā)工程師遇到的面試題

          2021 年6月面試遭遇滑鐵盧,現(xiàn)在這么內(nèi)卷了嗎

          想跳槽漲薪,想進(jìn)大廠,如何準(zhǔn)備面試呢?

          瀏覽 62
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  五月天欧美色图 | 青娱乐在线视频观看 | 一直操| 国产嫩苞又嫩又紧AV在线 | 操逼动漫视频 |