Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 日本精品一区二区三区在线,国产精品久久久久久久免费大片,a级日本理论片在线播放

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          DDoS攻擊不算事 Bondnet僵尸網絡可挖礦

          用僵尸網絡發(fā)動DDoS攻擊在安全界來說已經不算事了,但現在有安全公司發(fā)現,名為“Bondnet”的僵尸網絡通過控制超過15000臺的服務器,不僅能夠發(fā)動DDoS攻擊、竊取企業(yè)的數據,甚至還能用所控制的僵尸設備“挖礦”,開采不同種類的虛擬貨幣。

          DDoS攻擊不算事 Bondnet僵尸網絡可挖礦

          據披露,代號為Bood007.01的黑客從去年12月開始,主要開采暗網上常用的Monero(門羅幣),一天大約可獲利1000美元(約6902.5元人民幣)。

          而Bondnet主要鎖定Windows Server主機,利用系統(tǒng)弱密碼問題,和常見老舊系統(tǒng)漏洞來入侵系統(tǒng),例如phpMyAdmin配置錯誤漏洞,或JBoss、Oracle Web Application Testing Suite、ElasticSearch、MS SQL servers、Apache Tomcat、Oracle Weblogic等,再通過一系列Visual Basic腳本程序,來植入遠端的木馬和采礦程序。

          最早一波Botnet攻擊發(fā)生在香港,因為phpMyAdmin配置錯誤,讓攻擊者有機可乘,暗中植入了未知的DLL文件和編碼過的Visual Basic腳本程序。雖然感染主機上安裝了多種殺毒軟件,但都沒有發(fā)現到這些問題文件而告警。此外,攻擊者還會植入WMI木馬,來與C&C服務器溝通,傳遞設備的數據到C&C服務器,包括設備名稱、RDP端口、帳號密碼、Windows版本、正在活動的處理器數量、運行時間、操作系統(tǒng)的語言、CPU的架構(x86/x64)等等,這些數據使用ASCII編碼,并且通過HTTP協議進行傳輸。

          Botnet攻擊流程圖(圖片來自guardicore.com)

          研究人員指出,部分僵尸設備被用來執(zhí)行采礦計算,攻擊者會根據采集不同種類的加密貨幣,下載并安裝相對應的礦工程序,采集加密貨幣的種類包括Monero、ByteCoin、RieCoin和ZCash等,這些加密貨幣都能兌換成美元。而且,為了確保采礦任務不會因系統(tǒng)重開機而中斷,攻擊者還設定了排期規(guī)則,每小時會自動啟動一次采礦程序。

          目前,Botnet所控大多數僵尸設備負責采礦工作,一部分僵尸設備則負責勒索攻擊。而其目標則針對跨國企業(yè)、大學、市議會和其他政府機關來發(fā)動攻擊。

          于測試過程中很多系統(tǒng)我們能接觸到的只有一個登陸界面,所以要充分挖掘漏洞,進行深入操作

          登錄&注冊

          SQL注入

          萬能密碼繞過登錄

          存在SQL注入的情況下,有可能使用萬能密碼直接登錄

          admin' or '1'='1'--
          admin' OR 4=4/*
          "or "a"="a
          ' or''='
          ' or 1=1--
          

          有超級多

          登錄口SQL注入

          存在SQL注入的話直接注出賬密

          有些可以構造用戶注入登錄,比如熊海cms后臺登錄處存在sql注入

          $login=$_POST['login']; 
          $user=$_POST['user']; 
          $password=$_POST['password']; 
          $checkbox=$_POST['checkbox']; 
          
          if ($login<>""){ 
          $query = "SELECT * FROM manage WHERE user='$user'"; 
          $result = mysql_query($query) or die('SQL語句有誤:'.mysql_error()); 
          $users = mysql_fetch_array($result);
          

          這里萬能密碼起不到作用,因為他是通過用戶名去數據庫查密碼,再進行匹配,還有一種方法非常巧妙

          user:1' union select 1,2,'test','c4ca4238a0b923820dcc509a6f75849b',5,6,7,8# 
          password:1
          

          這是mysql的特性, 在聯合查詢并不存在的數據時,聯合查詢就會構造一個虛擬的數據,就相當于構造了一個虛擬賬戶,可以使用這個賬戶登錄

          未授權訪問

          后臺未授權訪問

          列舉幾種找未授權訪問的方法

          • 使用目錄掃描工具,如 dirsearch 等掃描路徑,有的可能存在目錄遍歷
          • 查看 js 代碼中登錄成功后的跳轉 url
          • 使用 jsfind 找可疑url
          • 利用web程序已知漏洞如:druid未授權的urls、springboot mapping等未授權漏洞界面找可疑的 url,訪問查看是否存在未授權
          • 有些可能在未授權進入后臺一瞬間,重定到登錄頁面,這時可以利用burp抓包把跳轉包drop掉

          組件未授權

          使用的組件可能會出現漏洞,常用的未授權漏洞,對于端口的收集也至關重要,可以提高漏洞利用面

          • Redis 未授權訪問漏洞
          • MongoDB 未授權訪問漏洞
          • Jenkins 未授權訪問漏洞
          • Memcached 未授權訪問漏洞
          • JBOSS 未授權訪問漏洞
          • VNC 未授權訪問漏洞
          • Docker 未授權訪問漏洞
          • ZooKeeper 未授權訪問漏洞
          • Rsync 未授權訪問漏洞
          • Atlassian Crowd 未授權訪問漏洞
          • CouchDB 未授權訪問漏洞
          • Elasticsearch 未授權訪問漏洞
          • Hadoop 未授權訪問漏洞
          • Jupyter Notebook 未授權訪問漏洞

          https://www.freebuf.com/vuls/265318.html

          https://xz.aliyun.com/t/6103

          其他功能點(注冊)(找回密碼)

          超長用戶名注冊

          注冊用戶

          admin+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1
          

          覆蓋掉原來的admin用戶,不常見

          任意重置密碼

          此時客戶端會發(fā)一個驗證碼包,這是隨意輸入驗證碼,發(fā)包,返回包
          返回包錯誤的回顯為{“status”:0},將返回包的東西換成{“status”:1},即可重置密碼

          用戶枚舉漏洞

          找回密碼界面,輸入用戶名抓包,查看返回包中泄露的信息

          比如:TerraMaster TOS 用戶枚舉漏洞 CVE-2020-28185

          輸入用戶名 admin 點擊確定,查看Burp捕獲的包,其中有一個請求包用于確認用戶admin是否存在,存在則返回用戶的郵箱信息

          驗證碼問題

          驗證碼不刷新

          驗證碼不會自動刷新,導致一個驗證碼可以用很多次

          驗證碼失效

          驗證碼無效依然可爆破,在挖掘弱口令的時候,常常會遇到圖片驗證碼無效的情況,此時只需要輸入正確的賬號密碼和驗證碼,使用burpsuite依然可繼續(xù)爆破

          驗證碼前端返回

          有的平臺可能驗證碼校驗在前端進行,錯誤的將后臺的驗證碼返回到前端,導致攻擊者可以抓取返回包中的驗證碼

          驗證碼爆破

          有的平臺可能驗證碼比較簡單只有幾位數字,可能存在爆破,使用burp抓包爆破

          驗證碼短信轟炸

          對于驗證碼發(fā)送次數沒有做限制,導致造成短時間內短信重發(fā),使用burp抓取獲取驗證碼的包放到repeater不斷重放,更暴力點可以使用intruder

          驗證碼OCR

          對登錄頁面使用工具如 xcode 對驗證碼進行識別爆破用戶賬號密碼

          驗證碼驗證邏輯錯誤

          就是驗證碼可以修改接收者,將賬戶修改密碼的驗證碼抓包修改為其他手機號,后臺并沒有做驗證

          萬能驗證碼

          可能存在萬能驗證碼0000或者9999,不常見

          越權

          過于簡單的cookie

          如果用戶登錄后的cookie并不是隨機的,而是如

          cookie:Guest
          

          這種過分簡單的身份驗證方法,可以導致越權,如果又存在用戶注冊,就可以注冊一個普通用戶然后越權為admin

          HTML源碼信息泄露

          固定加密的賬密

          比如:中科網威 下一代防火墻控制系統(tǒng)存在賬號密碼泄露漏洞,攻擊者通過前端獲取密碼的Md5后解密可獲取完整密碼登陸后臺

          fofa語句:body="Get_Verify_Info(hex_md5(user_string)."
          

          F12查看前端發(fā)現 admin的md5加密密碼

          注釋泄露信息

          必須泄露的url,或者敏感信息

          ELSE

          URL重定向

          經常出現在登錄成功跳轉中,可以修改參數跳轉到任意頁面,可用于釣魚

          比如:www.ocean.com?redir=aHR0cDovL2FkbWluLmFhYS5jb20=

          redir后面的可能會進行base64編碼

          redirect、redirect_to、redirect_url、url、jump、jump_to、target、to、link、linkto、Domain
          

          已知漏洞利用

          因為一個web服務會用到很多組件,只要一個組件出現漏洞,這個密不透風的墻就被推到了,所以說資產收集是很重要的,收集足夠多的信息,知己知彼百戰(zhàn)百勝

          有條件可以用一個掃描器掃描已知漏洞

          • web框架歷史漏洞
          • cms歷史漏洞
          • oa歷史漏洞
          • 使用fofa、瀏覽器插件wappalyzer等收集資產,然后拿漏洞庫的poc去嘗試

          弱口令

          默認密碼

          很多設備都存在默認的帳號密碼

          特別是一些廠商設備弱口令很常見

          常見設備弱口令整理

          一個簡單的弱口令就讓高昂的設備白給

          測試賬號未刪除

          比如 test,ceshi

          拼音姓名字典

          拼音姓名字典、用戶名字典(如root,system,admin1等)+弱口令爆破,使用常規(guī)的拼音姓名字典 +123456,123,等弱口令進行爆破

          如果網站有注冊功能,破解用戶密碼的時候可以先去注冊查看注冊機制,如果可以使用123456等

          密碼那么就用拼音字典去爆破123456等弱口令,如果不行,可根據密碼復雜程度制作密碼,比如密碼需求是字

          母加數字的八位,就可以嘗試abcd1234等符合密碼規(guī)則的密碼進行爆破

          用戶名枚舉

          使用兩位字母和三位字母枚舉,爆破123456等弱口令,成功爆破出一枚管理員后臺賬號密碼,之前一個學校的后臺弱口令沒成功,SQL注入后發(fā)現用戶名全是姓名首字母,密碼1111

          提示過于詳細

          當爆破的時候返回包顯示密碼不正確用戶名不存在的時候,我們可以搜集這些用戶名進行專門的弱口令爆破,例如我爆破出存在多個存在的用戶名,首先搜集這些用戶名,然后設置burpsuite,通過以下格式的方法進行爆破,例如:Lihua,lihua123 lihua lihua lihua lihua@123 lihua lihua1234且注意網站下方是否有建立時間,如果時間是2017年建站的 ,我們的密碼可以設置成lihua@2017 lihua@2018等進行專門針對用戶名的爆破

          域名做字典

          截取子域名一部分作為字典挖掘弱口令

          比如學校 wlzx(網絡中心),tw(團委),jxzl(教學質量)等常見的系統(tǒng)用戶名也是子域名

          根據網站性質猜測用戶名,比如教務類網站常有teacher,student1等用戶名,或者企業(yè)縮寫為用戶名

          搜集文章發(fā)布者姓名

          搜集文章發(fā)布者姓名,在挖掘弱口令漏洞的時候,我常常會搜集文章發(fā)布者的姓名,網頁上會有一些文章發(fā)布者的名字,我會把它搜集其他作為針對該網站爆破后臺的用戶名,并且整合前幾種方法進行爆破。如果遇到中文名的管理員,我會把它轉換為英文名,比如發(fā)布者:李剛,我的字典里就會多l(xiāng)ilgang,lg,lig,lgang,這幾個用戶名,配合前幾種姿勢進行爆破。當然也遇到過比較奇葩的,直接就是中文為用戶名

          信息收集

          不放過細節(jié),qq群號很重要

          在以前遇到一個這樣的案例,網站上面存在一個客服qq群號碼,網站是需要公司用戶登錄的,驗證碼也無法爆破,我在了解了網站的業(yè)務之后,通過網站上的qq群號碼加群,在群公告之中發(fā)現了默認密碼是xxx@xx1,但是不知道用戶名,就在群里問了一句我登錄不進去了,然后私聊一些群里的其他用戶獲取了用戶名是企業(yè)統(tǒng)一信用代碼,而群名片就是企業(yè)名字。我通過中國企業(yè)統(tǒng)一代碼查詢網站得知了這些企業(yè)的用戶名。然后通過該默認密碼進入了后臺繼續(xù)深入挖掘。另外在src上也挖到過同類問題,直接通過企業(yè)用戶名和企業(yè)信用代碼就可以重置企業(yè)用戶密碼進而查看學生簡歷,總而言之,任何網頁上的信息都可能作為用戶名,需要細心搜集

          注冊賬號搜尋信息

          在網站登錄口無法爆破的時候,可以耐下心來注冊,通過后臺搜索好友等方法搜集用戶名。然后在了解注冊密碼復雜程度機制之后挨個挨個的去手工嘗試用戶名密碼。比如搜集到了lihao用戶名,就可以參照前面的方法手動嘗試lihao lihao123等密碼進行登錄,此方法需要很大耐心,但是十分有效

          安裝文檔

          搜集該網站的安裝文檔,使用文檔等尋找默認賬號密碼或者未打碼(也可以通過百度,谷歌,百度網盤等搜集)

          Fuzz

          工號、學號、身份證號等fuzz,當遇到用戶名可能為工號的情況下,fuzz一波數字工號 ,或者尋找有無工號泄露的地方,根據工號繼續(xù)爆破

          各位大佬們多多提高危

          本文由Ocean原創(chuàng)發(fā)布
          轉載,請參考轉載聲明,注明出處: https://www.anquanke.com/post/id/259244
          安全客 - 有思想的安全新媒體

          、JavaWeb概念

          Java web,是用java技術來解決相關web互聯網領域的技術的總稱。web包括:web服務器和web客戶端兩部分。

          java在最早web客戶端的應用有java applet程序,不過這種技術在很久之前就已經被淘汰了。java在服務器端的應用非常豐富,

          比如Servlet,jsp和第三方框架等等。java技術對web領域的發(fā)展注入了強大的動力

          簡單的說,就是使用java語言實現瀏覽器可以訪問的程序內容。稱之為Java Web。

          javaweb開發(fā)是基于請求和響應的:

          請求:瀏覽器(客戶端)向服務器發(fā)送信息

          響應:服務器向(客戶端)瀏覽器回送信息

          請求和響應是成對出現的。

          2、web資源分類:

          所謂web資源即放在Internet網上供外界訪問的文件或程序,又根據它們呈現的效果及原理不同,將它們劃分為靜態(tài)資源和動態(tài)資源。

          靜態(tài)web資源:固定不變數據文件(靜態(tài)網頁 HTML、CSS文件、文本、音頻、視頻)

          靜態(tài)web技術:HTML+CSS+JavaScript

          動態(tài)web資源:一段服務程序,運行后,生成的數據文件

          動態(tài)web技術:servlet,jsp,php, .net ,ruby、python等等

          3、常見的web服務器

          web服務器簡介:

          Tomcat:由Apache組織提供的一種Web服務器,提供對jsp和Servlet的支持。它是一種輕量級的javaWeb容器(服務器),也是當前應用最廣的JavaWeb服務器(免費)。

          Jboss:是一個遵從JavaEE規(guī)范的、開放源代碼的、純Java的EJB服務器,它支持所有的JavaEE規(guī)范(免費)。

          GlassFish: 由Oracle公司開發(fā)的一款JavaWeb服務器,是一款強健的商業(yè)服務器,達到產品級質量(應用很少,收費)。

          Resin:是CAUCHO公司的產品,是一個非常流行的應用服務器,對servlet和JSP提供了良好的支持,性能也比較優(yōu)良,resin自身采用JAVA語言開發(fā)(收費,應用比較多)。

          WebLogic:是Oracle公司的產品,是目前應用最廣泛的Web服務器,支持JavaEE規(guī)范,而且不斷的完善以適應新的開發(fā)要求,適合大型項目(收費,用的不多,適合大公司)。

          3.1、Tomcat服務器

          開源小型web服務器 ,完全免費,主要用于中小型web項目,只支持Servlet和JSP 等少量javaee規(guī)范(就是JavaWeb編程接口)

          3.2、tomcat服務器與servlet版本的關系

          servlet:sun公司提供的用于開發(fā)動態(tài)web資源的技術。

          jsp:(java server page),java提供的一門開發(fā)web網頁的技術。

          tomcat軟件:java開發(fā)的。java軟件運行的時候需要jdk。

          向下兼容。tomcat7也支持servlet3.0/jsp2.2規(guī)范,可以支持javaee6.0當前企業(yè)常用的版本 6.* / 7.*/8.*

          3.3、tomcat下載和安裝說明

          到http://tomcat.apache.org 下載

          1) Tomcat首頁

          2)Tomcat下載

          3)下載后的包

          4)安裝:解壓

          5)tomcat的安裝目錄介紹:

          bin:可以執(zhí)行文件。

          conf:tomcat服務器的配置文件

          lib:tomcat啟動后需要依賴的jar包

          logs:tomcat工作之后的日志文件

          webapps:是tomcat布暑工程的目錄。

          work:jsp文件在被翻譯之后,保存在當前這個目錄下,session對象被序列化之后保存的位置

          3.4、Tomcat服務器啟動(**重點)

          注意事項:

          1、JAVA_HOME:環(huán)境變量。并且配置到jdk的目錄,其完整過程如下:

          打開控制臺(cmd命令打開窗口)。輸入java -version測試

          2、啟動tomcat目錄。 tomcat目錄/bin/startup.bat(window啟動文件) 找到startup.bat 雙擊運行。會有一個黑窗口,黑窗口不要關閉。(如果關閉,相當于把tomcat停止了。)

          3、在瀏覽器地址欄中輸入:http://localhost:8080 或者 http://127.0.0.1:8080localhost ,如果看到如下頁面,證明啟動成功

          3.5、配置tomcat的端口(****重點)

          tomcat默認的端口是8080(訪問端口)

          http的默認端口是80,如果訪問的時候輸入http://www.baidu.com相當于http://www.baidu.com:80。當真正在項目上線之后,通常采用80,修改方法如下:

          1)找到tomcat目錄/conf/server.xml

          2)修改port的值,將port端口的值修改為80

          3)然后在瀏覽器中輸入 http://127.0.0.1:80 或 http://127.0.0.1 訪問測試

          訪問成功!!!

          3.6、catalina run 啟動Tomcat

          Tomcat啟動,還有一種啟動的方法就是在命令行中,先把你的當前目錄切換 到你tomcat目錄\bin目錄下,如下是我的位置

          再執(zhí)行catalina run 這個命令啟動Tomcat。這個命令有什么好處。當Tomcat啟動失敗的時候,會有一閃而過的情況,

          當我們使用catalina run 這個命令啟動Tomcat的時候,哪怕有錯誤,我們也可以清楚的看到tomcat失敗的原因。不會一閃而過。

          3.7、tomcat關閉

          有三種方法。

          第一種:Ctrl+C鍵 關閉Tomcat服務器

          第二種:點擊Tomcat窗口的右上角關閉按鈕 (暴力停止服務器)

          第三種:找到tomcat目錄/bin/shutdown.bat文件,雙擊執(zhí)行關閉Tomcat。

          4、常用的布署工程到Tomcat中的兩種方式

          把我們自己書寫的html,servlet這些信息,部署到tomcat的方式。

          4.1、第一種方法:在tomcat目錄/conf/server.xml 配置---了解

          在conf/server.xml文件的host元素中配置,例如:

          在host標簽內書寫如下內容

          <Context path="/atguigu" docBase="D:\atguigu"/>

          <Context path=”瀏覽器要訪問的目錄---虛擬目錄” docBase=”網站所在磁盤目錄”/>

          配置好之后,要重啟服務器。

          缺點(Tomcat7.0之后):如果配置錯誤:tomcat會啟動失敗。(如果tomcat里面存放的其他的網站),其他網站也會停機。

          4.2、第二種方式:將網站目錄復制到tomcat/webapps目錄(常用,必須掌握)

          有一個網站(一個文件夾),把文件夾復制到tomcat的webapps目錄下。

          文件夾的名字,就是網站或者工程的訪問目錄.相當于之前配置 <Context path=”” 的配置

          4.3、把網站目錄壓縮成war包部署到tomcat中

          war包:就是一個壓縮文件 zip格式的壓縮文件。 只不過擴展名不是.zip 而是.war

          把我們的項目進行壓縮zip,改成war,把war文件拷貝到tomcat/webapps目錄下

          步驟1、把文件夾中的內容壓縮成zip的格式,點擊一個要部署的文件夾下面,全選 然后壓縮

          步驟2、修改文件的后綴名為.war

          步驟3.把war文件復制到webapps目錄下。tomcat會自己把war的文件進行解壓

          4.4、webapps目錄下/ROOT工程的訪問

          當我們在瀏覽器中直接輸入http://ip地址:端口號 那么 默認訪問的是Tomcat目錄/webapps/ROOT目錄

          如果webapps下面有一個ROOT的項目。那么在訪問的時候,直接可以省略項目的名字/ 表示找到root目錄

          5、整合Tomcat和Eclipse開發(fā)工具中(***常用必須掌握)

          5.1、打開Eclipse的Server視圖窗口

          第一種情況,直接打開Servers窗口

          第二種情況,搜索Servers窗口打開

          圖一,打開總的eclipse視圖

          圖二:輸入Server過濾出服務器窗口選項

          Servers服務器窗口已成功打開,如下圖:

          5.2、創(chuàng)建Tomcat 服務器

          1)在Servers窗口中,點擊 創(chuàng)建 server 的文字提示連接。如下圖:

          2)創(chuàng)建一個新的Tomcat服務器實例

          3)點擊Browse按鈕,打開目錄選擇窗口。選擇Tomcat 解壓目錄

          4)選擇Tomcat目錄,然后點擊確定按鈕

          5)Tomcat目錄選擇好之后,點擊 【Next】按鈕繼續(xù)操作

          6)點擊 【Finish】按鈕結束操作

          7)Tomcat 服務器創(chuàng)建成功!!!

          5.3、啟動Eclipse中的Tomcat服務器

          1)Debug模式啟動Tomcat服務器

          提示當前為Debug模式啟動!!!

          Tomcat啟動成功的控制臺提示!!!

          2)Run模式啟動Tomcat服務器

          Run模式啟動顯示

          Tomcat啟動成功的控制臺提示!!!

          5.4、停止 Eclipse 中的Tomcat 服務器

          暴力停止 Tomcat (相當于電腦被拔掉電源一樣。沒有執(zhí)行關機的準備操作。)

          正常停止 Tomcat (相當于點擊操作系統(tǒng)中的關機按鈕,執(zhí)行關機保存操作,然后關機)

          5.5、配置Eclipse 中的Tomcat 布暑的Web工程路徑

          1)打開Servers窗口,雙擊Tomcat v6.0 Server 服務器打開 Tomcat的配置窗口

          這里是Eclipse把工程發(fā)布后的三種不同的選項。

          2)Tomcat 位置-選項介紹說明:

          2.1、User workspance metadata (does not modify Tomcat installation) 將在eclipse的工作區(qū)間目錄下eclipse的工作空間目錄\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\ 有一份tomcat的拷貝所有布暑的web工程都會布暑到eclipse的工作空間目錄\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps目錄中

          2.2、 User Tomcat installation (takes control of Tomcat installation) 在原Tomcat目錄下做更改操作所有布暑的web工程都會發(fā)布到Tomcat目錄下的\wtpwebapps目錄中

          2.3、 User custom location ( does not modify Tomcat installtion ) 自定義一個目錄去布暑Web工程

          比如操作如下:

          一:選擇自定義的布暑目錄

          二:選擇你自定義的目錄,然后點擊確定。之后Tomcat的一些目錄會被拷貝過來。布暑的工程也在這個目錄下的wtpwebapps目錄下

          三:選中你要布暑的工程,右鍵選擇菜單 Run As --->>> Run on Server 將工程布暑到剛剛自定義的目錄下。

          四:選擇你當前的web工程需要使用的哪個服務器運行。

          如果勾選中 Always use this server when running this project 表示下次運行服務器的時候默認使用當勾時時候選擇的服務器運行。

          五:等待Tomcat啟動,web工程布暑成功后。查看

          六:在瀏覽器中輸入http://127.0.0.1:8080/day06/index.html 測試查看

          6 HTTP協議介紹

          6.1、 HTTP協議

          1.HTTP(hypertext transport protocol),即超文本傳輸協議。這個協議詳細規(guī)定了瀏覽器和萬維網服務器之間互相通信的規(guī)則。

          2.客戶端與服務端通信時傳輸的內容我們稱之為報文。

          3.HTTP就是一個通信規(guī)則,這個規(guī)則規(guī)定了客戶端發(fā)送給服務器的報文格式,也規(guī)定了服務器發(fā)送給客戶端的報文格式。實際我們要學習的就是這兩種報文。客戶端發(fā)送給服務器的稱為”請求報文“,服務器發(fā)送給客戶端的稱為”響應報文“。

          大白話說,什么是協議。是雙方相互約定好的規(guī)則;比如:租房協議:租房協議就是租客和房東之間相互約定好的租房規(guī)則

          6.2、請求的協議格式

          請求的HTTP協議格式:

          請求行

          請求頭

          空行

          請求體

          GET請求協議格式 (get請求沒有請求體)

          POST請求協議格式

          6.3、常見請求頭的說明

          GET /Hello/index.jsp HTTP/1.1:GET請求,請求服務器資源的路徑 Hello/index.jsp, 協議為http 版本為1.1;

          Host:localhost:請求的主機名為localhost;

          User-Agent: Mozilla/4.0 (compatible; MSIE 8.0…:與瀏覽器和OS相關的信息。有些網站會顯示用戶的系統(tǒng)版本和瀏覽器版本信息,這都是通過獲取User-Agent頭信息而來的;

          Accept: */*:告訴服務器,當前客戶端可以接收的數據類型, */*,就表示什么都可以接收;

          Accept-Language: zh-CN:當前客戶端支持的語言,可以在瀏覽器的工具選項中找到語言相關信息;

          Accept-Encoding: gzip, deflate:支持的壓縮格式。數據在網絡上傳遞時,可能服務器會把數據壓縮后再發(fā)送;

          Connection: keep-alive:客戶端支持的鏈接方式,保持一段時間鏈接,默認為3000ms;

          6.4、get請求和post請求都分別是哪些?

          GET請求

          1)、輸入瀏覽器地址欄輸入地址,直接按回車

          2)、點擊<a>超鏈接

          3)、GET請求 表單提交

          4)、script src=””,引入外部文件

          5)、img src=”路徑”,引入圖片

          6)、引入外部css。。。

          POST請求

          1)只有表單提交的時候method=post,提交表單就是發(fā)post請求

          6.5、響應的協議格式

          響應的HTTP協議格式

          響應首行

          響應頭信息

          空行

          響應體

          6.6、常見的響應碼

          響應碼對瀏覽器來說很重要,它告訴瀏覽器響應的結果;

          200:請求成功,瀏覽器會把響應體內容(通常是html)顯示在瀏覽器中;

          404:請求的資源沒有找到,說明客戶端錯誤的請求了不存在的資源;

          500:請求資源找到了,但服務器內部出現了錯誤;

          302:請求重定向,當響應碼為302時,表示服務器要求瀏覽器重新再發(fā)一個請求,服務器會發(fā)送一個響應頭Location,它指定了新請求的URL地址;

          7、servlet(重點*****)

          7.1、servlet簡介

          servlet 是運行在 Web 服務器中的小型 Java 程序。servlet 通常通過 HTTP(超文本傳輸協議)接收和響應來自 Web 客戶端的請求。

          要實現此接口,可以編寫一個擴展 javax.servlet.GenericServlet 的一般 servlet,或者編寫一個擴展 javax.servlet.http.HttpServlet 的 HTTP servlet。

          此接口定義了初始化 servlet 的方法、為請求提供服務的方法和從服務器移除 servlet 的方法。這些方法稱為生命周期方法,它們是按以下順序調用的:

          1.構造 servlet,然后使用 init 方法將其初始化。

          2.處理來自客戶端的對 service 方法的所有調用。

          3.從服務中取出 servlet,然后使用 destroy 方法銷毀它,最后進行垃圾回收并終止它。

          Servlet:

          1、接受瀏覽器發(fā)送過來的消息。

          2、給瀏覽器返回消息。瀏覽器認識html。可以動態(tài)去輸出html

          7.2、servlet快速入門

          7.2.1、如何創(chuàng)建動態(tài)的Web工程

          1)先創(chuàng)建 動態(tài)的Web工程

          2) 配置工程的選項

          3)勾選生成web.xml配置文件

          4)動態(tài)web工程創(chuàng)建完成!!!

          5)web工程的介紹和說明

          7.2.2、手動編寫servlet實現

          寫servlet做兩件事

          1、實現servlet接口。 由sun公司定義的一個接口。(定義一個規(guī)范)

          2、把類部署到web服務器中(tomcat)。

          sun公司定義一個servlet的規(guī)范。定義了servlet應該有哪些方法,以及方法需要的參數。

          1、實現servlet接口(javax.servlet.Servlet)

          2、重寫service方法(service方法每次請求都會調用一次)

          [java] view plain copy

          1. package com.atguigu.web;
          2. import java.io.IOException;
          3. import javax.servlet.Servlet;
          4. import javax.servlet.ServletConfig;
          5. import javax.servlet.ServletException;
          6. import javax.servlet.ServletRequest;
          7. import javax.servlet.ServletResponse;
          8. public class Hello implements Servlet{
          9. @Override
          10. public void destroy() {
          11. // TODO Auto-generated method stub
          12. System.out.println("Servlet銷毀了!");
          13. }
          14. @Override
          15. public ServletConfig getServletConfig() {
          16. // TODO Auto-generated method stub
          17. return ;
          18. }
          19. @Override
          20. public String getServletInfo() {
          21. // TODO Auto-generated method stub
          22. return ;
          23. }
          24. @Override
          25. public void init(ServletConfig arg0) throws ServletException {
          26. // TODO Auto-generated method stub
          27. System.out.println("ServerConfig 初始化了");
          28. }
          29. @Override
          30. public void service(ServletRequest arg0, ServletResponse arg1)
          31. throws ServletException, IOException {
          32. // TODO Auto-generated method stub
          33. System.out.println("hello servlet service方法被調用");
          34. }
          35. }

          當瀏覽器輸入地址,訪問servlet的時候,servlet會執(zhí)行servcie方法。

          3、在WebContent/WEB-INF/web.xml中配置servlet的訪問路徑 。瀏覽器訪問servlet的路徑

          web.xml(新建web工程的時候,eclipse自動創(chuàng)建出來的)的位置:

          在web.xml的根標簽下,直接書寫如下內容。

          [html] view plain copy

          1. <?xml version="1.0" encoding="UTF-8"?>
          2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
          3. <display-name>day06</display-name>
          4. <servlet>
          5. <servlet-name>Hello</servlet-name>
          6. <servlet-class>com.atguigu.web.Hello</servlet-class>
          7. </servlet>
          8. <servlet-mapping>
          9. <servlet-name>Hello</servlet-name>
          10. <url-pattern>/hello</url-pattern>
          11. </servlet-mapping>
          12. <welcome-file-list>
          13. <welcome-file>index.html</welcome-file>
          14. <welcome-file>index.htm</welcome-file>
          15. <welcome-file>index.jsp</welcome-file>
          16. <welcome-file>default.html</welcome-file>
          17. <welcome-file>default.htm</welcome-file>
          18. <welcome-file>default.jsp</welcome-file>
          19. </welcome-file-list>
          20. </web-app>

          4、把項目部署到tomcat中,去啟動tomcat。在地址欄中輸入信息,訪問servlet

          控制臺打印:

          7.2.3、訪問servlet的細節(jié)

          瀏覽器地址欄中輸入:http://localhost:8080/day06/hello

          訪問過程分析:

          7.2.4、servlet生命周期

          Servlet的生命周期

          1.調用 init 方法 初始化Servlet

          2.調用 Servlet中的service方法 處理請求操作

          3.調用 destory方法 執(zhí)行Servlet銷毀的操作

          init方法:當服務器創(chuàng)建一個serlvet的時候,會去調用init方法。當我們第一次去訪問一個servlet的時候,會去創(chuàng)建這個servlet對象。并且只會創(chuàng)建一次。如果配置了load-on-startup 表示服務器啟動的時候就創(chuàng)建servlet實例。

          service方法:客戶端每一次請求,tomcat都會去調用servcie方法。處理用戶的請求。并且給其響應。每一次請求都會調用servcie方法。

          estroy 方法:當服務器銷毀一個servlet的時候,會調用里面的destory方法。當我們的web服務器,正常關閉的時候,會去調用destroy方法。否則不會調用destroy的方法。

          7.3、使用Eclipse創(chuàng)建Servlet程序(重點*****)

          1)通過Eclipse自動新建一個Servlet程序

          2)修改Servlet的訪問url地址

          3)勾選需要生成的Servlet方法

          4) 查看自動生成的結果內容!!!

          5) 在瀏覽器中輸出http://127.0.0.1:80/day06/helloServlet 訪問測試

          訪問成功

          7.4、Servlet是單例的。Servlet中的變量,它有線程安全問題。

          7.4.1、全局變量,數據不安全。

          7.4.2、方法內的局部變量,數據安全


          主站蜘蛛池模板: 亚洲国产高清在线一区二区三区 | 亚洲视频一区调教| 亚洲第一区精品日韩在线播放| 日韩有码一区二区| 一区二区三区免费在线观看| 大伊香蕉精品一区视频在线| 日韩一区二区三区在线观看| 亚洲AV无码一区二区三区DV| 3D动漫精品啪啪一区二区下载| 成人在线观看一区| 国产情侣一区二区三区| 久久久久久人妻一区精品| 国模私拍福利一区二区| 美女视频黄a视频全免费网站一区| 亚洲国产精品一区二区第一页免| 亚洲国产成人一区二区三区 | 亚洲av综合av一区二区三区| 日本香蕉一区二区三区| 亚洲国产综合无码一区| 亚洲AV无码一区二区三区久久精品| 国产精品综合一区二区| 亚洲AV无码第一区二区三区| 精品国产乱子伦一区二区三区| 国产成人一区二区三区高清 | 日韩精品在线一区二区| 免费精品一区二区三区在线观看| 国产激情一区二区三区| 无码少妇丰满熟妇一区二区| 成人乱码一区二区三区av| 亚洲一区AV无码少妇电影| 大屁股熟女一区二区三区| 影院成人区精品一区二区婷婷丽春院影视 | 国产一区二区三区露脸| 午夜福利一区二区三区高清视频| 午夜一区二区在线观看| 日韩精品视频一区二区三区| 波多野结衣在线观看一区| 精品国产一区二区三区不卡| 奇米精品一区二区三区在| 日韩精品一区二区三区在线观看l 日韩精品一区二区三区毛片 | 日本内射精品一区二区视频 |