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

HTTP协议的介绍
  • HTTP协议就是超文本传输协议。
  • 超文本是超级文本的缩写,是指超越文本限制或者超链接,比如:图片、音乐、视频、超链接等等,都属于超文本。
  • HTTP协议的制作者是蒂姆·伯纳斯-李,1991年设计出来的,HTTP协议设计之前目的是传输网页数据,现在允许传输任意类型的数据。
  • 传输HTTP协议格式的数据是基于TCP传输协议的,发送数据之前需要先建立连接。
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

  • 查询参数部分:?page=1&count=10

参数说明:

  • ?后面的page表示第一个参数,后面的参数都使用&进行连接
HTTP请求报文

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

  • GET方式的请求报文
  • POST方式的请求报文

说明:

  • GET:获取web服务器数据
  • POST:向web服务器提交数据
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请求报文可以由请求行请求头空行请求体4个部分组成
  • 请求行是由三部分组成:请求方式、请求资源路径、HTTP协议版本
  • GET方式的请求报文没有请求体,只有请求行、请求头、空行组成
  • POST方式的请求报文可以有请求行、请求头、空行、请求体四部分组成,注意:POST方式可以允许没有请求体,但是这种格式很少见
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

服务器内部源代码出错

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页