HTTP协议的介绍HTTP协议的作用

规定了浏览器和Web服务器通信数据的格式,也就是说浏览器和Web服务器通信需要使用http协议。

浏览器访问web服务器的通信过程

http是一种什么协议(HTTP协议)(1)

URL

URL表达的意思是统一资源定位符,通俗理解就是网络资源地址,也就是我们常说的网址。

URL的组成

https://news.163.com/18/1122/10/E131233H.html

URL的组成部分:

  1. 协议部分:https://、http://、ftp://
  2. 域名部分:news.163.com
  3. 资源路径部分:/18/1122/10/E131233H.html

域名:

域名就是IP地址的别名,它是用点进行分割使用英文字母和数字组成的名字,使用域名目的就是方便的记住某台主机IP地址。

URL的扩展:

https://news.163.com/hello.html?page=1&count=10

参数说明:

HTTP请求报文

HTTP最常见的请求报文有两种:

说明:

HTTP GET 请求分析

---请求行--- GET / HTTP/1.1 => 请求方式 请求的资源路径 http协议的版本 ---请求头--- Host: www.baidu.com => 服务器的主机ip地址和端口号,如果看不到端口号,https默认是443 Connection: keep-alive => 和服务端程序保持长连接,当客户端和服务端有一段时间没有通信,那么服务端程序会主动向客户端断开连接 Accept: text/plain, */*; q=0.01 => 告诉服务端程序,可以接受的数据类型 X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400 => 用户代理,客户端程序的名称,爬虫使用,可以根据是否有User-Agent进行反爬 Referer: https://www.baidu.com/?tn=98010089_dg&ch=14 Accept-Encoding: gzip, deflate, br => 告诉服务端程序支持的压缩算法 Accept-Language: zh-CN,zh;q=0.9 => 告诉服务端程序支持的语言 COOKIE: BIDUPSID=2AD97C5F09037008B8B7479292AF46DD; PSTM=1587562369; BD_UPN=1a314753; sug=3; sugstore=0; ORIGIN=0; bdime=0; BAIDUID=2AD97C5F09037008B8B7479292AF46DD:SL=0:NR=10:FG=1; BDUSS=HpCOFp1RWlobThxanZ3Ym0zNWtoUUhzUENxRHZUUTNOWktoR3A3QmFhMzdXdFplRVFBQUFBJCQAAAAAAAAAAAEAAACeAR82uqOyvMDvtcS2rLy-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPvNrl77za5eR; BDUSS_BFESS=HpCOFp1RWlobThxanZ3Ym0zNWtoUUhzUENxRHZUUTNOWktoR3A3QmFhMzdXdFplRVFBQUFBJCQAAAAAAAAAAAEAAACeAR82uqOyvMDvtcS2rLy-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPvNrl77za5eR; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; BDRCVFR[S_ukKV6dOkf]=mk3SLVN4HKm; BD_HOME=1; delPer=0; BD_CK_SAM=1; PSINO=7; BDRCVFR[EaNsStaiD7m]=mk3SLVN4HKm; COOKIE_SESSION=515_6_9_9_11_17_0_0_9_7_0_4_86791_0_0_0_1601816163_1601569596_1601816640|9#5901_223_1601569591|9; H_PS_PSSID=32755_32617_1448_32735_7544_32706_32230_7517_7605 => Cookie客户端用户身份的标识 ---空行--- \r\n

总结HTTP响应报文

---响应行--- HTTP/1.1 200 OK => http协议版本 状态码 状态描述 Bdpagetype: 2 Bdqid: 0x97a8872b0007466a Cache-Control: private Connection: keep-alive => 和客户端保持长连接 Content-Encoding: gzip Content-Type: text/html;charset=utf-8 => 服务器发送给浏览器的内容类型及编码格式 Date: Mon, 05 Oct 2020 05:20:48 GMT => 服务器的时间,格林威治时间 Expires: Mon, 05 Oct 2020 05:20:47 GMT P3p: CP=" OTI DSP COR IVA OUR IND COM " Server: BWS/1.1 => 服务器的名称 Set-Cookie: BDRCVFR[EaNsStaiD7m]=aeXf-1x8UdYcs; path=/; domain=.baidu.com Set-Cookie: BDSVRTM=515; path=/ Set-Cookie: BD_HOME=1; path=/ Set-Cookie: H_PS_PSSID=32755_32617_1448_32735_7544_32706_32230_7517_7605; path=/; domain=.baidu.com Strict-Transport-Security: max-age=172800 Traceid: 1601875248028832205810928133114568328810 X-Ua-Compatible: IE=Edge,chrome=1 Transfer-Encoding: chunked => 服务器发送给客户端程序(浏览器)的数据不确定数据长度,数据发送结束的接收标识:0\r\n,Content-Length:200(字节),服务端发送给客户端的数据确定长度。内容长度这两个选项只能二选一

HTTP状态码介绍

HTTP状态码是用于表示web服务器响应状态的3位数字代码

状态码

说明

200

请求成功

307

重定向

400

错误的请求,请求地址或者参数有误

404

请求资源在服务器不存在

500

服务器内部源代码出错

,