網絡爬蟲--2.HTTP和HTTPS

文章目錄

  • 一.簡介
  • 二.HTTP的請求與響應
  • 三.客戶端HTTP請求
    • 1.格式
    • 2.請求方法
  • 四.常用的請求報頭
    • 1.Host (主機和端口號)
    • 2.Connection (鏈接類型)
    • 3.Upgrade-Insecure-Requests (升級為HTTPS請求)
    • 4. User-Agent (瀏覽器名稱)
    • 5. Accept (傳輸文件類型)
    • 6.Referer (頁面跳轉處)
    • 7.Accept-Encoding(文件編解碼格式)
    • 8.Accept-Language(語言種類)
    • 9. Accept-Charset(字符編碼)
    • 10. Cookie (Cookie)
    • 11. Content-Type (POST數據類型)
  • 五.服務端HTTP響應
  • 六.常用的響應報頭
    • 1. Cache-Control:must-revalidate, no-cache, private。
    • 2. Connection:keep-alive
    • 3. Content-Encoding:gzip
    • 4. Content-Type:text/html;charset=UTF-8
    • 5. Date:Sun, 21 Sep 2016 06:18:21 GMT
    • 6. Expires:Sun, 1 Jan 2000 01:00:00 GMT
    • 7. Pragma:no-cache
    • 8.Server:Tengine/1.4.6
    • 9. Transfer-Encoding:chunked
    • 10. Vary: Accept-Encoding
    • 11. Cookie 和 Session:
  • 七.響應狀態碼

一.簡介

HTTP協議(HyperText Transfer Protocol,超文本傳輸協議):是一種發布和接收 HTML頁面的方法。

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)簡單講是HTTP的安全版,在HTTP下加入SSL層。

SSL(Secure Sockets Layer 安全套接層)主要用于Web的安全傳輸協議,在傳輸層對網絡連接進行加密,保障在Internet上數據傳輸的安全。

HTTP的端口號為80,
HTTPS的端口號為443

二.HTTP的請求與響應

HTTP通信由兩部分組成: 客戶端請求消息 與 服務器響應消息
在這里插入圖片描述
瀏覽器發送HTTP請求的過程:

  1. 當用戶在瀏覽器的地址欄中輸入一個URL并按回車鍵之后,瀏覽器會向HTTP服務器發送HTTP請求。HTTP請求主要分為“Get”和“Post”兩種方法。

  2. 當我們在瀏覽器輸入URL http://www.baidu.com 的時候,瀏覽器發送一個Request請求去獲取 http://www.baidu.com 的html文件,服務器把Response文件對象發送回給瀏覽器。

  3. 瀏覽器分析Response中的 HTML,發現其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。 瀏覽器會自動再次發送Request去獲取圖片,CSS文件,或者JS文件。

  4. 當所有的文件都下載成功后,網頁會根據HTML語法結構,完整的顯示出來了。

URL(Uniform / Universal Resource Locator的縮寫):統一資源定位符,是用于完整地描述Internet上網頁和其他資源的地址的一種標識方法。
在這里插入圖片描述

基本格式:scheme://host[:port#]/path/…/[?query-string][#anchor]

scheme:協議(例如:http, https, ftp)
host:服務器的IP地址或者域名
port#:服務器的端口(如果是走協議默認端口,缺省端口80)
path:訪問資源的路徑
query-string:參數,發送給http服務器的數據
anchor:錨(跳轉到網頁的指定錨點位置)

例如:
ftp://192.168.0.116:8080/index
http://www.baidu.com
http://item.jd.com/11936238.html#product-detail

三.客戶端HTTP請求

1.格式

URL只是標識資源的位置,而HTTP是用來提交和獲取資源。

客戶端發送一個HTTP請求到服務器的請求消息,包括以下四個部分組成:請求行、請求頭部、空行、請求數據

下圖給出了請求報文的一般格式。

在這里插入圖片描述


GET https://www.baidu.com/ HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://www.baidu.com/
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Cookie: BAIDUID=04E4001F34EA74AD4601512DD3C41A7B:FG=1; BIDUPSID=04E4001F34EA74AD4601512DD3C41A7B; PSTM=1470329258; MCITY=-343%3A340%3A; BDUSS=nF0MVFiMTVLcUh-Q2MxQ0M3STZGQUZ4N2hBa1FFRkIzUDI3QlBCZjg5cFdOd1pZQVFBQUFBJCQAAAAAAAAAAAEAAADpLvgG0KGyvLrcyfrG-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFaq3ldWqt5XN; H_PS_PSSID=1447_18240_21105_21386_21454_21409_21554; BD_UPN=12314753; sug=3; sugstore=0; ORIGIN=0; bdime=0; H_PS_645EC=7e2ad3QHl181NSPbFbd7PRUCE1LlufzxrcFmwYin0E6b%2BW8bbTMKHZbDP0g; BDSVRTM=0

2.請求方法

GET https://www.baidu.com/ HTTP/1.1

根據HTTP標準,HTTP請求可以使用多種請求方法。

HTTP 0.9:只有基本的文本 GET 功能。

HTTP 1.0:完善的請求/響應模型,并將協議補充完整,定義了三種請求方法: GET, POST 和 HEAD方法。

HTTP 1.1:在 1.0 基礎上進行更新,新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

HTTP 2.0(未普及):請求/響應首部的定義基本沒有改變,只是所有首部鍵必須全部小寫,而且請求行要獨立為 :method、:scheme、:host、:path這些鍵值對。

在這里插入圖片描述

HTTP請求主要分為Get和Post兩種方法

  1. GET是從服務器上獲取數據,POST是向服務器傳送數據

  2. GET請求參數顯示,都顯示在瀏覽器網址上,HTTP服務器根據該請求所包含URL中的參數來產生響應內容,即“Get”請求的參數是URL的一部分。 例如: http://www.baidu.com/s?wd=Chinese

  3. POST請求參數在請求體當中,消息長度沒有限制而且以隱式的方式進行發送,通常用來向HTTP服務器提交量比較大的數據(比如請求中包含許多參數或者文件上傳操作等),請求的參數包含在“Content-Type”消息頭里,指明該消息體的媒體類型和編碼,

注意:避免使用Get方式提交表單,因為有可能會導致安全問題。 比如說在登陸表單中用Get方式,用戶輸入的用戶名和密碼將在地址欄中暴露無遺。

四.常用的請求報頭

1.Host (主機和端口號)

Host:對應網址URL中的Web名稱和端口號,用于指定被請求資源的Internet主機和端口號,通常屬于URL的一部分。

2.Connection (鏈接類型)

Connection:表示客戶端與服務連接類型

Client 發起一個包含 Connection:keep-alive 的請求,HTTP/1.1使用 keep-alive 為默認值。

Server收到請求后:

  1. 如果 Server 支持 keep-alive,回復一個包含 Connection:keep-alive 的響應,不關閉連接;
  2. 如果 Server 不支持 keep-alive,回復一個包含 Connection:close 的響應,關閉連接。
  3. 如果client收到包含 Connection:keep-alive 的響應,向同一個連接發送下一個請求,直到一方主動關閉連接。

keep-alive在很多情況下能夠重用連接,減少資源消耗,縮短響應時間,比如當瀏覽器需要多個文件時(比如一個HTML文件和相關的圖形文件),不需要每次都去請求建立連接。

3.Upgrade-Insecure-Requests (升級為HTTPS請求)

Upgrade-Insecure-Requests:升級不安全的請求,意思是會在加載 http 資源時自動替換成 https 請求,讓瀏覽器不再顯示https頁面中的http請求警報。

HTTPS 是以安全為目標的 HTTP 通道,所以在 HTTPS 承載的頁面上不允許出現 HTTP 請求,一旦出現就是提示或報錯。

4. User-Agent (瀏覽器名稱)

User-Agent:是客戶瀏覽器的名稱,以后會詳細講。

5. Accept (傳輸文件類型)

Accept:指瀏覽器或其他客戶端可以接受的MIME(Multipurpose Internet Mail Extensions(多用途互聯網郵件擴展))文件類型,服務器可以根據它判斷并返回適當的文件格式。

舉例:
Accept: /:表示什么都可以接收。

Accept:image/gif:表明客戶端希望接受GIF圖像格式的資源;

Accept:text/html:表明客戶端希望接受html文本。

Accept: text/html, application/xhtml+xml;q=0.9, image/*;q=0.8:表示瀏覽器支持的 MIME 類型分別是 html文本、xhtml和xml文檔、所有的圖像格式資源。

q是權重系數,范圍 0 =< q <= 1,q 值越大,請求越傾向于獲得其“;”之前的類型表示的內容。若沒有指定q值,則默認為1,按從左到右排序順序;若被賦值為0,則用于表示瀏覽器不接受此內容類型。

Text:用于標準化地表示的文本信息,文本消息可以是多種字符集和或者多種格式的;Application:用于傳輸應用程序數據或者二進制數據。

6.Referer (頁面跳轉處)

Referer:表明產生請求的網頁來自于哪個URL,用戶是從該 Referer頁面訪問到當前請求的頁面。這個屬性可以用來跟蹤Web請求來自哪個頁面,是從什么網站來的等。

有時候遇到下載某網站圖片,需要對應的referer,否則無法下載圖片,那是因為人家做了防盜鏈,原理就是根據referer去判斷是否是本網站的地址,如果不是,則拒絕,如果是,就可以下載;

7.Accept-Encoding(文件編解碼格式)

Accept-Encoding:指出瀏覽器可以接受的編碼方式。編碼方式不同于文件格式,它是為了壓縮文件并加速文件傳遞速度。瀏覽器在接收到Web響應之后先解碼,然后再檢查文件格式,許多情形下這可以減少大量的下載時間。

舉例:Accept-Encoding:gzip;q=1.0, identity; q=0.5, *;q=0
如果有多個Encoding同時匹配, 按照q值順序排列,本例中按順序支持 gzip, identity壓縮編碼,支持gzip的瀏覽器會返回經過gzip編碼的HTML頁面。 如果請求消息中沒有設置這個域服務器假定客戶端對各種內容編碼都可以接受。

8.Accept-Language(語言種類)

Accept-Langeuage:指出瀏覽器可以接受的語言種類,如en或en-us指英語,zh或者zh-cn指中文,當服務器能夠提供一種以上的語言版本時要用到。

9. Accept-Charset(字符編碼)

Accept-Charset:指出瀏覽器可以接受的字符編碼。

舉例:Accept-Charset:iso-8859-1,gb2312,utf-8
ISO8859-1:通常叫做Latin-1。Latin-1包括了書寫所有西方歐洲語言不可缺少的附加字符,英文瀏覽器的默認值是ISO-8859-1.
gb2312:標準簡體中文字符集;
utf-8:UNICODE 的一種變長字符編碼,可以解決多種語言文本顯示問題,從而實現應用國際化和本地化。
如果在請求消息中沒有設置這個域,缺省是任何字符集都可以接受。

10. Cookie (Cookie)

Cookie:瀏覽器用這個屬性向服務器發送Cookie。Cookie是在瀏覽器中寄存的小型數據體,它可以記載和服務器相關的用戶信息,也可以用來實現會話功能,以后會詳細講。

11. Content-Type (POST數據類型)

Content-Type:POST請求里用來表示的內容類型。

舉例:Content-Type = Text/XML; charset=gb2312:
指明該請求的消息體中包含的是純文本的XML類型的數據,字符編碼采用“gb2312”。

五.服務端HTTP響應

HTTP響應也由四個部分組成,分別是: 狀態行、消息報頭、空行、響應正文
在這里插入圖片描述


HTTP/1.1 200 OK
Server: Tengine
Connection: keep-alive
Date: Wed, 30 Nov 2016 07:58:21 GMT
Cache-Control: no-cache
Content-Type: text/html;charset=UTF-8
Keep-Alive: timeout=20
Vary: Accept-Encoding
Pragma: no-cache
X-NWS-LOG-UUID: bd27210a-24e5-4740-8f6c-25dbafa9c395
Content-Length: 180945<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ....

六.常用的響應報頭

理論上所有的響應頭信息都應該是回應請求頭的。但是服務端為了效率,安全,還有其他方面的考慮,會添加相對應的響應頭信息,從上圖可以看到:

1. Cache-Control:must-revalidate, no-cache, private。

這個值告訴客戶端,服務端不希望客戶端緩存資源,在下次請求資源時,必須要從新請求服務器,不能從緩存副本中獲取資源。

Cache-Control是響應頭中很重要的信息,當客戶端請求頭中包含Cache-Control:max-age=0請求,明確表示不會緩存服務器資源時,Cache-Control作為作為回應信息,通常會返回no-cache,意思就是說,“那就不緩存唄”。

當客戶端在請求頭中沒有包含Cache-Control時,服務端往往會定,不同的資源不同的緩存策略,比如說oschina在緩存圖片資源的策略就是Cache-Control:max-age=86400,這個意思是,從當前時間開始,在86400秒的時間內,客戶端可以直接從緩存副本中讀取資源,而不需要向服務器請求。

2. Connection:keep-alive

這個字段作為回應客戶端的Connection:keep-alive,告訴客戶端服務器的tcp連接也是一個長連接,客戶端可以繼續使用這個tcp連接發送http請求。

3. Content-Encoding:gzip

告訴客戶端,服務端發送的資源是采用gzip編碼的,客戶端看到這個信息后,應該采用gzip對資源進行解碼。

4. Content-Type:text/html;charset=UTF-8

告訴客戶端,資源文件的類型,還有字符編碼,客戶端通過utf-8對資源進行解碼,然后對資源進行html解析。通常我們會看到有些網站是亂碼的,往往就是服務器端沒有返回正確的編碼。

5. Date:Sun, 21 Sep 2016 06:18:21 GMT

這個是服務端發送資源時的服務器時間,GMT是格林尼治所在地的標準時間。http協議中發送的時間都是GMT的,這主要是解決在互聯網上,不同時區在相互請求資源的時候,時間混亂問題。

6. Expires:Sun, 1 Jan 2000 01:00:00 GMT

這個響應頭也是跟緩存有關的,告訴客戶端在這個時間前,可以直接訪問緩存副本,很顯然這個值會存在問題,因為客戶端和服務器的時間不一定會都是相同的,如果時間不同就會導致問題。所以這個響應頭是沒有Cache-Control:max-age=*這個響應頭準確的,因為max-age=date中的date是個相對時間,不僅更好理解,也更準確。

7. Pragma:no-cache

這個含義與Cache-Control等同。

8.Server:Tengine/1.4.6

這個是服務器和相對應的版本,只是告訴客戶端服務器的信息。

9. Transfer-Encoding:chunked

這個響應頭告訴客戶端,服務器發送的資源的方式是分塊發送的。一般分塊發送的資源都是服務器動態生成的,在發送時還不知道發送資源的大小,所以采用分塊發送,每一塊都是獨立的,獨立的塊都能標示自己的長度,最后一塊是0長度的,當客戶端讀到這個0長度的塊時,就可以確定資源已經傳輸完了。

10. Vary: Accept-Encoding

告訴緩存服務器,緩存壓縮文件和非壓縮文件兩個版本,現在這個字段用處并不大,因為現在的瀏覽器都是支持壓縮的。

11. Cookie 和 Session:

服務器和客戶端的交互僅限于請求/響應過程,結束之后便斷開,在下一次請求時,服務器會認為新的客戶端。

為了維護他們之間的鏈接,讓服務器知道這是前一個用戶發送的請求,必須在一個地方保存客戶端的信息。

Cookie:通過在 客戶端 記錄的信息確定用戶的身份。

Session:通過在 服務器端 記錄的信息確定用戶的身份。

七.響應狀態碼

響應狀態代碼有三位數字組成,第一個數字定義了響應的類別,且有五種可能取值。常見狀態碼:

100~199:表示服務器成功接收部分請求,要求客戶端繼續提交其余請求才能完成整個處理過程。

200~299:表示服務器成功接收請求并已完成整個處理過程。常用200(OK 請求成功)。

300~399:為完成請求,客戶需進一步細化請求。例如:請求的資源已經移動一個新地址、常用302(所請求的頁面已經臨時轉移至新的url)、307和304(使用緩存資源)。

400~499:客戶端的請求有錯誤,常用404(服務器無法找到被請求的頁面)、403(服務器拒絕訪問,權限不夠)。

500~599:服務器端出現錯誤,常用500(請求未完成。服務器遇到不可預知的情況)。

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 Moved Temporarily
所請求的頁面已經臨時轉移至新的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
被請求的頁面需要用戶名和密碼。
401.1
登錄失敗。
401.2
服務器配置導致登錄失敗。
401.3
由于 ACL 對資源的限制而未獲得授權。
401.4
篩選器授權失敗。
401.5
ISAPI/CGI 應用程序授權失敗。
401.7
訪問被 Web 服務器上的 URL 授權策略拒絕。這個錯誤代碼為 IIS 6.0 所專用。
402 Payment Required
此代碼尚無法使用。
403 Forbidden
對被請求頁面的訪問被禁止。
403.1
執行訪問被禁止。
403.2
讀訪問被禁止。
403.3
寫訪問被禁止。
403.4
要求 SSL。
403.5
要求 SSL 128403.6
IP 地址被拒絕。
403.7
要求客戶端證書。
403.8
站點訪問被拒絕。
403.9
用戶數過多。
403.10
配置無效。
403.11
密碼更改。
403.12
拒絕訪問映射表。
403.13
客戶端證書被吊銷。
403.14
拒絕目錄列表。
403.15
超出客戶端訪問許可。
403.16
客戶端證書不受信任或無效。
403.17
客戶端證書已過期或尚未生效。
403.18
在當前的應用程序池中不能執行所請求的 URL。這個錯誤代碼為 IIS 6.0 所專用。
403.19
不能為這個應用程序池中的客戶端執行 CGI。這個錯誤代碼為 IIS 6.0 所專用。
403.20
Passport 登錄失敗。這個錯誤代碼為 IIS 6.0 所專用。
404 Not Found
服務器無法找到被請求的頁面。
404.0
沒有找到文件或目錄。
404.1
無法在所請求的端口上訪問 Web 站點。
404.2
Web 服務擴展鎖定策略阻止本請求。
404.3
MIME 映射策略阻止本請求。
405 Method Not Allowed
請求中指定的方法不被允許。
406 Not Acceptable
服務器生成的響應無法被客戶端所接受。
407 Proxy Authentication Required
用戶必須首先使用代理服務器進行驗證,這樣請求才會被處理。
408 Request Timeout
請求超出了服務器的等待時間。
409 Conflict
由于沖突,請求無法被完成。
410 Gone
被請求的頁面不可用。
411 Length Required
"Content-Length" 未被定義。如果無此內容,服務器不會接受請求。
412 Precondition Failed
請求中的前提條件被服務器評估為失敗。
413 Request Entity Too Large
由于所請求的實體的太大,服務器不會接受請求。
414 Request-url Too Long
由于url太長,服務器不會接受請求。當post請求被轉換為帶有很長的查詢信息的get請求時,就會發生這種情況。
415 Unsupported Media Type
由于媒介類型不被支持,服務器不會接受請求。
416 Requested Range Not Satisfiable
服務器不能滿足客戶在請求中指定的Range頭。
417 Expectation Failed
執行失敗。
423
鎖定的錯誤。5xx:服務器錯誤500 Internal Server Error
請求未完成。服務器遇到不可預知的情況。
500.12
應用程序正忙于在 Web 服務器上重新啟動。
500.13
Web 服務器太忙。
500.15
不允許直接請求 Global.asa。
500.16
UNC 授權憑據不正確。這個錯誤代碼為 IIS 6.0 所專用。
500.18
URL 授權存儲不能打開。這個錯誤代碼為 IIS 6.0 所專用。
500.100
內部 ASP 錯誤。
501 Not Implemented
請求未完成。服務器不支持所請求的功能。
502 Bad Gateway
請求未完成。服務器從上游服務器收到一個無效的響應。
502.1
CGI 應用程序超時。 ·
502.2
CGI 應用程序出錯。
503 Service Unavailable
請求未完成。服務器臨時過載或當機。
504 Gateway Timeout
網關超時。
505 HTTP Version Not Supported
服務器不支持請求中指明的HTTP協議版本

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452092.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452092.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452092.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解決win7的outlook打不開的問題

outlook打不開&#xff0c;一直顯示正在處理 解決方法&#xff1a; 1. 按住Ctrl,雙擊打開組件&#xff0c;會提示是否進入安全模式&#xff0c; 進入安全模式 2. 單擊Outlook中的文件-選項-加載項- 左下角的“COM加載項“ 旁邊的“轉到”&#xff0c;將所有加載項前面的勾都去掉…

IBM王陽:軟件是凝聚創新力的最佳平臺

導讀&#xff1a;在IBM全球副總裁兼IBM中國開發中心總經理王陽博士看來&#xff0c;IBM百年不衰的根本原因在于將創新力凝結成軟件然后進行合適的傳播&#xff0c;其間最重要的是成功打造出了一個吸引人才、培養研發人才并激發出人才創新力的環境和氛圍。而保持創新領導力的關鍵…

數據庫的規范化

在關系數據庫中&#xff0c;對關系模式的基本要求是滿足第一范式。 規范化程度過低的關系不一定能夠很好地描述現實世界 可能存在插入異常、刪除異常、修改復雜、數據冗余等問題 解決方法就是對其進行規范化&#xff0c;轉換成高級范式 一個低一級范式的關系模式&#xff0c;通…

Jquery 多行拖拽圖片排序 jq優化

<!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>jQuery圖片拖動排序代碼</title><style type"text/css">.item_container{position:relative;height:auto;overflow:hidden;} .item_content ul{li…

應該把script標簽放在哪里

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 概述&#xff1a; 如果在頁面中寫JS的話&#xff0c;那必然會用到script標簽&#xff0c;理論上script標簽放在哪里都是可以的&#xff…

網絡爬蟲--3.str和bytes的區別

文章目錄一.bytes二.str和bytes相互轉換三.bytearray一.bytes bytes對象只負責以二進制字節序列的形式記錄所需記錄的對象&#xff0c;至于該對象到底表示什么&#xff08;比如到底是什么字符&#xff09;則由相應的編碼格式解碼所決定。 bytes是Python 3中特有的&#xff0c…

git使用問題

1、錯誤&#xff1a;The following untracked working tree files would be overwritten by checkout 。后面跟了幾個文件 場景&#xff1a;需要從一個分支切換到另一個分支時報錯 方法&#xff1a;git clean -d -fx "" 原因&#xff1a;之前修改了.gitignore文件&am…

jdbc寫入和讀取過程

[jdbc寫操作] Class.forName("com.mysql.jdbc.Driver"); Connection conn DriverManager.getConnection("jdbc:mysql://localhost:3306/big","root","root"); ppst conn.preparedStatement("insert into test(id,name,age) val…

分享11款主流的開源編程工具

導讀&#xff1a;有了開源編程工具&#xff0c;在基于開源許可證的情況下您可以輕松學習、修改、提高代碼的質量&#xff0c;本文收集了11款最主流的且有價值的開源編程工具。或許會給您帶來一絲驚喜。一起來看下吧。 NO.1 Rhomobile Rhodes Ruby或許是Github上第二大流行語言…

數據庫觸發器

觸發器是一種特殊類型的存儲過程&#xff0c;它在指定的表中的數據發生變化時自動生效。喚醒調用觸發器以響應 INSERT、UPDATE 或 DELETE 語句。觸發器可以查詢其它表&#xff0c;并可以包含復雜的Transact-SQL語句。將觸發器和觸發它的語句作為可在觸發器內回滾的單個事務對待…

jQuery中ready與load事件的區別

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 jQuery中ready與load事件的區別 概述&#xff1a; 大家在工作中用jQuery的時候一定會在使用之前這樣&#xff1a;12345678//document rea…

網絡爬蟲--4.requests的簡單實用

文章目錄一.簡介二.基本GET請求1.最基本的GET請求--直接用get方法2.添加 headers 和查詢參數parmas3.通過requests獲取網絡上圖片的大小三.基本POST請求1.傳入data數據四.代理&#xff08;proxies參數&#xff09;五.私密代理六.web客戶端驗證七.Cookies 和 Sission1.Cookies2.…

編程各類資源大放送

小編的公眾號[編程軟文]一直在運營著&#xff0c;但是我的公眾號只是發一些技術類文章&#xff0c;沒有特地為自己的公眾號如何添粉去操作&#xff0c;目前公眾號關注度比較低。看著其他人的公眾號粉絲越來越多&#xff0c;小編也需要為自己做些事。為了提高自己公眾號的關注度…

使用Spring框架能帶來那些好處?

1、Dependency Injection(DI)方法使得構造器和JavaBean properties文件中的依賴關系一目了然。2、與EJB容器相比較&#xff0c;Ioc容器更加趨向于輕量級。這樣一來Ioc容器在郵箱的內存和CPU資源的情況下進行應用程序的開發和發布就變得十分有利。3、Spring并沒有閉門造車&#…

誰在告誰?移動專利混戰圖

移動領域激戰正酣&#xff0c;同樣是沒有永遠的朋友&#xff0c;只有永遠的利益。 蘋果剛剛起訴三星的Galaxy手機和平板電腦山寨了蘋果的產品&#xff0c;而此前兩家并沒有過節。再比如微軟和亞馬遜以及HTC之間的授權協議爭端。移動領域的爭端如此之多&#xff0c;以至于看客無…

java中list()和listfile()

File fnew File("c:\\");String[] f1f.list();File[] f2f.listFiles();① list() 返回一個字符串數組&#xff0c;這些字符串指定此抽象路徑名表示的目錄中的文件和目錄。 以C盤為例&#xff0c;返回的是c盤下文件夾名字的字符串數組,如[TEMP, Windows]②listFile…

光棍節程序員闖關秀過關全攻略

maven/java/web/bootstrapQQ群&#xff1a;566862629。希望更多人一起幫助我學習。 光棍節程序員闖關秀過關全攻略。程序員的寂寞誰能懂?"SF光棍節程序員闖關秀"智力挑戰小游戲火熱上線&#xff0c;看看你能闖到第幾關&#xff1f; 游戲地址: http://segmentfault…

jekins搭建

2019獨角獸企業重金招聘Python工程師標準>>> 轉自 https://www.cnblogs.com/hdwang/p/6081994.html &#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&#xf…

網絡爬蟲--5.urllib庫的基本使用(1)

文章目錄一. 前言二. urlopen三. Request四. User-Agent五. 添加更多的Header信息1. 添加一個特定的header2. 隨機添加/修改User-Agent一. 前言 所謂網頁抓取&#xff0c;就是把URL地址中指定的網絡資源從網絡流中讀取出來&#xff0c;保存到本地。 在Python中有很多庫可以用來…

高性能計算

信息時代的硬件芯片和存儲器價格以摩爾定律的形式下降&#xff0c;可是現在處理的數據量也越來越大。我們先以cocoa編程為例&#xff0c;然后再結合網格計算、云計算&#xff0c;綜合對最新的高性能計算技術作介紹。 使用 runloop 在cocoa編程如果用NSThread開線程 [NSThread …