一、hadoop spark穩定性
二、get post
- GET - 從指定的資源請求數據。
- POST - 向指定的資源提交要被處理的數據
GET | POST | |
---|---|---|
後退按鈕/刷新 | 無害 | 數據會被重新提交(瀏覽器應該告知用戶數據會被重新提交)。 |
書籤 | 可收藏爲書籤 | 不可收藏爲書籤 |
緩存 | 能被緩存 | 不能緩存 |
編碼類型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded 或 multipart/form-data。爲二進制數據使用多重編碼。 |
歷史 | 參數保留在瀏覽器歷史中。 | 參數不會保存在瀏覽器歷史中。 |
對數據長度的限制 | 是的。當發送數據時,GET 方法向 URL 添加數據;URL 的長度是受限制的(URL 的最大長度是 2048 個字符)。 | 無限制。 |
對數據類型的限制 | 只允許 ASCII 字符。 | 沒有限制。也允許二進制數據。 |
安全性 |
與 POST 相比,GET 的安全性較差,因爲所發送的數據是 URL 的一部分。 在發送密碼或其他敏感信息時絕不要使用 GET ! |
POST 比 GET 更安全,因爲參數不會被保存在瀏覽器歷史或 web 服務器日誌中。 |
可見性 | 數據在 URL 中對所有人都是可見的。 | 數據不會顯示在 URL 中。 |
1xx: 信息
消息: | 描述: |
---|---|
100 Continue | 服務器僅接收到部分請求,但是一旦服務器並沒有拒絕該請求,客戶端應該繼續發送其餘的請求。 |
101 Switching Protocols | 服務器轉換協議:服務器將遵從客戶的請求轉換到另外一種協議。 |
2xx: 成功
消息: | 描述: |
---|---|
200 OK | 請求成功(其後是對GET和POST請求的應答文檔。) |
201 Created | 請求被創建完成,同時新的資源被創建。 |
202 Accepted | 供處理的請求已被接受,但是處理未完成。 |
203 Non-authoritative Information | 文檔已經正常地返回,但一些應答頭可能不正確,因爲使用的是文檔的拷貝。 |
204 No Content | 沒有新文檔。瀏覽器應該繼續顯示原來的文檔。如果用戶定期地刷新頁面,而Servlet可以確定用戶文檔足夠新,這個狀態代碼是很有用的。 |
205 Reset Content | 沒有新文檔。但瀏覽器應該重置它所顯示的內容。用來強制瀏覽器清除表單輸入內容。 |
206 Partial Content | 客戶發送了一個帶有Range頭的GET請求,服務器完成了它。 |
3xx: 重定向
消息: | 描述: |
---|---|
300 Multiple Choices | 多重選擇。鏈接列表。用戶可以選擇某鏈接到達目的地。最多允許五個地址。 |
301 Moved Permanently | 所請求的頁面已經轉移至新的url。 |
302 Found | 所請求的頁面已經臨時轉移至新的url。 |
303 See Other | 所請求的頁面可在別的url下被找到。 |
304 Not Modified | 未按預期修改文檔。客戶端有緩衝的文檔併發出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務器告訴客戶,原來緩衝的文檔還可以繼續使用。 |
305 Use Proxy | 客戶請求的文檔應該通過Location頭所指明的代理服務器提取。 |
306 Unused | 此代碼被用於前一版本。目前已不再使用,但是代碼依然被保留。 |
307 Temporary Redirect | 被請求的頁面已經臨時移至新的url。 |
4xx: 客戶端錯誤
消息: | 描述: |
---|---|
400 Bad Request | 服務器未能理解請求。 |
401 Unauthorized | 被請求的頁面需要用戶名和密碼。 |
402 Payment Required | 此代碼尚無法使用。 |
403 Forbidden | 對被請求頁面的訪問被禁止。 |
404 Not Found | 服務器無法找到被請求的頁面。 |
405 Method Not Allowed | 請求中指定的方法不被允許。 |
406 Not Acceptable | 服務器生成的響應無法被客戶端所接受。 |
5xx: 服務器錯誤
消息: | 描述: |
---|---|
500 Internal Server Error | 請求未完成。服務器遇到不可預知的情況。 |
501 Not Implemented | 請求未完成。服務器不支持所請求的功能。 |
502 Bad Gateway | 請求未完成。服務器從上游服務器收到一個無效的響應。 |
503 Service Unavailable | 請求未完成。服務器臨時過載或當機。 |
504 Gateway Timeout | 網關超時。 |
505 HTTP Version Not Supported | 服務器不支持請求中指明的HTTP協議版本。 |
三、兩張表查詢賬單信息
60萬的數據進行多表關聯查詢,總結結果如下:
from多表關聯查詢:耗時15.376s、15.106s、15.216s、17.569s、15.729s,平均15.7992s
inner join on多表查詢:耗時16.3s、17.469s、18.295s、15.505s、18.411s,平均17.196s
四、快排思路
1.將數組的最後一個數right作爲基準數key。
2.分區過程:從數組的首元素begin開始向後找比key大的數(begin找大);end開始向前找比key小的數(end找小);找到後然後兩者交換(swap),知道begin >= end終止遍歷。最後將begin和最後一個數交換( 這個時候end不是最後一個位置),即 key作爲中間數(左區間都是比key小的數,右區間都是比key大的數)
3.再對左右區間重複第二步,直到各區間只有一個數。
五、linux 進程、磁盤管理查看
df
df命令參數功能:檢查文件系統的磁盤空間佔用情況。可以利用該命令來獲取硬盤被佔用了多少空間,目前還剩下多少空間等信息。
du 用來查看某個目錄所佔空間大小
du -sh
六、linux 文件查看(不打開的情況)
grep -i 字符串 文件
七、網絡層次
應用層 表示層 會話層 傳輸層 網絡層 數據鏈路層 物理層
八、三次握手,四次握手
TCP/IP三次握手,四次揮手
九、kubernetes docker應用
十、研究生半年學業在幹啥,有沒有發論文
十一、進程查看
ps aux | grep fCNL
:查到fCNL的進程 kill -s 9 pid
十二、併發線程倒序打印1~10,寫入文件
package Test.DataStructure.ExLock;
public class ExLock {
public static int count=0;
public static Object Lock =new Object();
static class RunnableImple implements Runnable{
@Override
public void run() {
countNumber();
}
}
public static void countNumber(){
synchronized (Lock){
count++;
try {
System.out.println(count);
if (count<10){
Lock.wait();
}else {
Lock.notifyAll();
}
}catch (InterruptedException e){
e.printStackTrace();
}
}
}
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
Thread thread =new Thread(new RunnableImple());
thread.start();
}
}
}
十三、spark如何提交一個應用
十四、hadoop,spark分發過程
十五、mongdb存儲數據,爬蟲爬取信息
十六、zookeeper保證可靠性,機制
十七、linux 端口號查詢
方法二:直接使用 netstat -anp | grep portno
即:netstat –apn | grep 8080 查看端口占用情況
netstat -anp命令簡單說明:
-a,顯示所有
-n,不用別名顯示,只用數字顯示
-p,顯示進程號和進程名
十八、前後端代碼編寫
MVC代碼編寫
十九、網絡不好,tcp/ip怎麼檢查
二十、hashmap底層源碼
二十一、mybatis防止sql注入攻擊
mybatis中的#和$的區別:
1、#將傳入的數據都當成一個字符串,會對自動傳入的數據加一個雙引號。
如:where username=#{username},如果傳入的值是111,那麼解析成sql時的值爲where username="111", 如果傳入的值是id,則解析成的sql爲where username="id".
2、$將傳入的數據直接顯示生成在sql中。
如:where username=${username},如果傳入的值是111,那麼解析成sql時的值爲where username=111;
如果傳入的值是;drop table user;,則解析成的sql爲:select id, username, password, role from user where username=;drop table user;
3、#方式能夠很大程度防止sql注入,$方式無法防止Sql注入。
4、$方式一般用於傳入數據庫對象,例如傳入表名.
5、一般能用#的就別用$,若不得不使用“${xxx}”這樣的參數,要手工地做好過濾工作,來防止sql注入攻擊。
6、在MyBatis中,“${xxx}”這樣格式的參數會直接參與SQL編譯,從而不能避免注入攻擊。但涉及到動態表名和列名時,只能使用“${xxx}”這樣的參數格式。所以,這樣的參數需要我們在代碼中手工進行處理來防止注入。
【結論】在編寫MyBatis的映射語句時,儘量採用“#{xxx}”這樣的格式。若不得不使用“${xxx}”這樣的參數,要手工地做好過濾工作,來防止SQL注入攻擊。