HTTP協議的請求與資料抓包
HTTP請求過程:
輸入目標網站,透過http發出GET請求或者POST請求,透過程式碼找到相應的函式,返回一個相關資料。
什麼是GET請求和POST請求:
GET:是從伺服器獲取原資料,不會更改資料庫的資料和狀態
POST:攜帶資料傳送到伺服器,一般會更改伺服器的資料
透過程式碼說明如何使用GET請求:
爬蟲抓包:
不同伺服器之間的資料都是透過網路來進行傳輸,對那些在網路上傳輸的資料(傳送、請求的資料)進行截獲、編輯、轉存等操作叫做抓包。抓包可以是抓取伺服器請求的資料,透過對網路上傳輸的資料進行抓取,可以對其進行分析。
GET、POST請求傳送的資料包的不同:
GET請求過程中,會出現兩種資料包,目標網站會將這兩個資料包一起傳送出去。狀態碼返回200,成功返回資料
POST請求過程中,會一步一步想目標網站發出請求,目標網站會先會傳送header,裝填碼返回100後,在傳送data,狀態碼返回200,才能成功返回資料
GET與POST請求方式不同,步驟當然也不可能,可能有些人會覺得POST請求步驟麻煩一些。但是並不是這個根據自己的實際請求而定。
透過程式碼分析如何資料抓包:
import java.io.IOException;
import java.net.Authenticator;
import java.net.InetSocketAddress;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class Demo
{
// 代理驗證資訊
final static String ProxyUser = "username";
final static String ProxyPass = "password";
// 代理伺服器(產品官網 )
final static String ProxyHost = "t.16yun.cn";
final static Integer ProxyPort = 31111;
// 設定IP切換頭
final static String ProxyHeadKey = "Proxy-Tunnel";
public static String getUrlProxyContent(String url)
{
Authenticator.setDefault(new Authenticator() {
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(ProxyUser, ProxyPass.toCharArray());
}
});
// 設定Proxy-Tunnel
Random random = new Random();
int tunnel = random.nextInt(10000);
String ProxyHeadVal = String.valueOf(tunnel);
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ProxyHost, ProxyPort));
try
{
// 處理異常、其他引數
Document doc = Jsoup.connect(url).timeout(3000).header(ProxyHeadKey, ProxyHeadVal).proxy(proxy).get();
if(doc != null) {
System.out.println(doc.body().html());
}
}
catch (IOException e)
{
e.printStackTrace();
}
return null;
}
public static void main(String[] args) throws Exception
{
// 要訪問的目標頁面
String targetUrl = "";
getUrlProxyContent(targetUrl);
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2730/viewspace-2826269/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- HTTP協議資料包HTTP協議
- Flutter中http請求抓包解決方案FlutterHTTP
- HTTP 協議六種請求方法HTTP協議
- HTTP協議如何發起請求HTTP協議
- Wireshark資料抓包分析(網路協議篇)第1章網路協議抓包概述協議
- wireshark抓包curl傳送http2請求HTTP
- 協議層的攻擊:HTTP請求走私協議HTTP
- [譯]學習HTTP協議的請求行HTTP協議
- tshark 抓包 mysql 協議包MySql協議
- 解密協議層的攻擊——HTTP請求走私解密協議HTTP
- HTTP協議GET和POST請求的區別HTTP協議
- HTTP協議中請求方法的Get和PostHTTP協議
- CTFHub web前置技能HTTP協議請求方式WebHTTP協議
- 支援https請求以及https請求的抓包HTTP
- http協議學習-請求頭Request HeadersHTTP協議Header
- UDP協議抓包分析 -- wiresharkUDP協議
- HTTP協議抓包工具:Charles for MacHTTP協議Mac
- HTTP協議---HTTP請求中的常用請求欄位和HTTP的響應狀態碼及響應頭HTTP協議
- iOS的http/https請求——十分鐘學會Charles抓包iOSHTTP
- Http協議什麼時候發生options請求?HTTP協議
- http協議學習系列(請求頭---Request Headers)HTTP協議Header
- Http請求資料格式HTTP
- 使用WireShark抓包分析TCP協議TCP協議
- HttpCanary實現對HTTP2協議的抓包和注入(原理篇)HTTPPCA協議
- Python 之requests封裝通用http協議介面請求Python封裝HTTP協議
- HTTP抓包HTTP
- iOS開發 支援https請求以及https請求的抓包iOSHTTP
- 前端必知必會HTTP請求系列(二)簡單一點的HTTP協議前端HTTP協議
- Cookie 與 HTTP請求CookieHTTP
- Android HTTP協議請求網路(三)之HttpURLConnection方式AndroidHTTP協議
- Android HTTP協議請求網路(一)之認識探索AndroidHTTP協議
- HTTP的請求與響應HTTP
- http 請求 formData 型別資料HTTPORM型別
- Swift:面向協議的網路請求Swift協議
- HTTP協議請求工作流程是什麼?linux學習HTTP協議Linux
- http協議請求方法有哪些?網路安全技術入門HTTP協議
- Http網路協議包 (快速理解)HTTP協議
- HTTP 請求與響應HTTP