一、http协议概念定义

HTTP (HyperText Transfer Protocol):即超文本传输协议,于1991年由蒂姆·伯纳斯-李设计制作

超文本:是超级文本的缩写,指超越文本限制或超链接,如音乐、图片、视频、超链接等

目的:是用来传输网页数据,现在运行传输任意类型的数据,传输http协议格式的数据是基于TCP传输协议,发送数据前需先建立连接

作用:规定了浏览器和web服务器通信数据的格式,浏览器和web服务器通信需使用http协议

二、浏览器与服务器通信过程

  1. 通过DNS(域名解析服务器)将域名解析为IP地址,浏览器获取到IP地址
  2. 浏览器web服务器程序建立连接
  3. 浏览器根据IP地址及web服务器程序默认80端口号发送http请求数据至web服务器程序
  4. web服务器程序根据请求向服务器主机获取图片、网页、js数据资源
  5. 服务器主机将资源返回给web服务器程序
  6. web服务器程序返回http响应数据至浏览器

三、URL网址概念定义

URL(Uniform Resoure Locator):统一资源定位符,通俗理解就是网络资源的地址,简称网址,通过URL能够找到网络中对应的资源数据

域名:是IP地址的别名,是用点进行分割使用英文字母和数字组成的名字,使用域名目的是为了方便记住主机IP地址

  • URL举例:http://xqnav.top/nav/index.html?page=1&count=5
  • URL组成
    • 协议部分:http://、https://、ftp://
    • 域名部分:xqnav.top
    • 资源路径部分:/nav/index.html
    • 参数部分:?后面的page和count为参数,参数间用&连接

四、查看HTTP协议的通信过程

开发者工具使用:以Google Chrome浏览器为例,Windows和Linux平台按F12, macOS选择 视图 ->开发者 ->开发者工具或直接使用alt+command+i快捷键,另一通用操作是在网页右击选择检查

  • 常用标签选项说明

    • Elements:元素,用于查看或修改HTML标签
    • Console:控制台,执行js代码,显示脚本输出的调试信息
    • Sources:源代码,查看静态资源文件,断点调试js代码
    • Network:网络,查看http协议的通信过程,http请求的详细信息,如请求头、响应头等

  • Headers:http的头信息
  • Response:http的响应体信息
  • General:主要信息
  • Response Headers:http响应头信息
  • Request Headers:http请求头信息

五、http请求报文方式

  • http请求报文组成:请求行、请求头、空行、和请求体

    • 请求行组成:请求方式、请求资源路径、http协议版本
  • 常见方式
    • GET方式:获取web服务器数据,无请求体
    • POST方式:向web服务器提交数据,请求体可有可无,一般均有

六、GET请求头报文解释说明

-------------------请求行---------------------
GET / HTTP/1.1    # GET请求方式 请求资源路径 HTTP协议版本
-------------------请求头---------------------
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9     # 可接受的数据内容类型
Accept-Encoding: gzip, deflate, br     # 可接受的压缩格式
Accept-Language: zh-CN,zh;q=0.9     #可接受的语言
Connection: keep-alive    # 和服务端保持长连接
Cookie: ISSW=1; ISSW=1;……   # 登录用户的身份标识,用来保存用户身份信息
Host: www.baidu.com    # 服务器的主机地址和端口号,默认是80
Referer: https://www.baidu.com/s?ie=utf-……   # 当前访问用户来源,服务器用来判断统计用户来源
Sec-Fetch-Dest: document   # 表示请求的目的地,即如何使用获取的数据,指明客户端请求的目的,期望需要的资源类型
Sec-Fetch-Mode: navigate   # 请求的模式,表示这是一个浏览器的页面切换请求
Sec-Fetch-Site: same-origin   # 请求发起者的来源与目标资源来源之间的关系,此处表示发起和目标站点源完全一致
Upgrade-Insecure-Requests: 1    # 让浏览器升级不安全请求,使用https请求
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36     # 用户代理,也就是客户端的名称;用户浏览器信息
sec-ch-ua: "Google Chrome";v="105", "Not)A;Brand";v="8", "Chromium";v="105"  # 用来替代user-agent,可以防止泄露浏览器详细信息
sec-ch-ua-mobile: ?0   # 是否是移动端用户
sec-ch-ua-platform: "Windows"   # 表示操作系统名称
--------------------空行---------------------

七、POST请求头报文解释说明

------------------请求行--------------------
POST /v2/api/?login HTTP/1.1 # POST请求方式 请求资源路径 HTTP协议版本
------------------请求头--------------------
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: max-age=0   # 缓存控制,多长时间不访问服务器,该响应包含对象的过期时间
Connection: keep-alive   # 和服务端保持长连接
Content-Length: 4737    # 消息实体的传输长度,报头以外的内容长度
Content-Type: application/x-www-form-urlencoded     # 告诉服务端请求的数据类型
Cookie: BIDUPSID=3A354E1289486ED85E4D2B9B42743E6E; ……
Host: passport.baidu.com # 服务器的主机地址和端口号,默认是80
Origin: https://www.baidu.com   # 当前请求来源于哪个站点
Referer: https://www.baidu.com/s?ie=utf-
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-site
Sec-Fetch-User: ?1   # 导航请求是否由用户激活触发(鼠标点击/键盘),1为是,0为不是
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 # 客户端的名称
sec-ch-ua: "Google Chrome";v="105", "Not)A;Brand";v="8", "Chromium";v="105"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
-------------------空行---------------------
-------------------请求体-------------------
username=admin&password=admin # 请求参数

八、响应报文解释说明

  • http响应报文组成:响应行、响应头、空行、响应体
  • 响应行组成:http协议版本、状态码、状态描述
  • 状态码
    • 200:请求成功
    • 307:重定向
    • 400:错误请求,请求地址或参数有误
    • 404:请求资源在服务器不存在
    • 500:服务器内部源代码出现错误
-------------------响应行/状态行------------------
HTTP/1.1 200 OK   # HTTP协议版本 状态码 状态描述
----------------------响应头----------------------
Bdpagetype: 3
Bdqid: 0xd604643700000bcc
Cache-Control: private
Ckpacknum: 2
Ckrndstr: 700000bcc
Connection: keep-alive    # 和客户端保持长连接
Content-Encoding: br
Content-Type: text/html;charset=utf-8     # 内容类型
Date: Tue, 18 Oct 2022 02:55:01 GMT    # 服务端的响应时间
Server: BWS/1.1      # 服务器名称及其版本号
Set-Cookie: delPer=0; path=/; domain=.baidu.com
Set-Cookie: BD_CK_SAM=1;path=/
Set-Cookie: PSINO=7; domain=.baidu.com; path=/
Set-Cookie: BDSVRTM=28; path=/
Set-Cookie: H_PS_PSSID=36561_37559_37520_36921_36884_36786_37538_37498_37581_26350_37364_37464; path=/; domain=.baidu.com; Secure; SameSite=None
Strict-Transport-Security: max-age=172800   #要求客户端禁用HTTP协议,尝试后续都通过HTTPS协议进行通信,常见于HTTPS协议的网站
Traceid: 1666061701046251853815421561211409402828
Vary: Accept-Encoding
X-Frame-Options: sameorigin
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked   # 发送给客户端内容不确定内容长度,发送结束的标记是0\r\n, Content-Length表示服务端确定发送给客户端的内容大小,但是二者只能用其一
----------------------空行------------------------
----------------------响应体----------------------
<!DOCTYPE html><html lang=“en”> …</html> # 响应给客户端的数据

学习导航:http://xqnav.top/

http协议、URL、GET/POST请求报文及响应报文相关推荐

  1. 【计算机网络】应用层 : 万维网 和 HTTP 协议 ( 万维网概述 | HTTP 协议特点 | HTTP 协议连接方式 | HTTP 协议报文结构 | HTTP 请求报文 | HTTP 响应报文 )

    文章目录 一.万维网概述 ★ 二.HTTP 协议 ( 超文本传输协议 ) ★ 三.HTTP 协议特点 ★ 四.HTTP 连接方式 ★ 五.HTTP 协议报文结构 六.HTTP 请求报文 ★ 七.HTT ...

  2. TCP/IP协议、请求报文和响应报文

    一.TCP/IP协议 1.计算机与网络设备相互通信 计算机与网络设备要相互通信, 双方就必须基于相同的方法. 比如:如何探测到通信目标. 由哪一边先发起通信. 使用哪种语言进行通 信. 怎样结束通信等 ...

  3. HTTP的请求报文与响应报文

    报文: 简单来说,报文就是也就是HTTP报文,作用是在各个系统之间进行和响应时用来交换与传输的数据单元,即站点一次性要发送的数据块,这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义 ...

  4. 关于请求报文和响应报文的详解

    1 什么是HTTP请求 HTTP的定义是超文本传输协议,是一种网络传输协议,位于协议族的应用层中. 2 请求报文 请求报文包括三个部分,第一部分是请求行,第二部分是Headers,第三部分是Body. ...

  5. 实现免密登录,设置只允许student1, student2用户登录,get和post的区别,HTTP状态码,HTTP请求报文和响应报文,HTTP是如何保持连接状态的

    1.实现免密登录 1创建密钥 [root@192 /]# su gzw [gzw@192 /]$ cd /home/gzw/.ssh [gzw@192 .ssh]$ ssh-keygen -t rsa ...

  6. HTTP报文之请求报文和响应报文详解

    本文详细介绍了Http报文之"请求报文"和"响应报文",欢迎阅读 ,一起进步. Hope this article can really let you kno ...

  7. HTTP的通信过程及请求报文和响应报文(详解)

    掌握HTTP的通信过程以及请求报文和响应报文 一.首先我们先来了解一下HTTP协议: HTTP协议(超文本传输协议):是浏览器和Web服务器之间进行数据通信的格式,也就是说如果想要实现浏览器和Web服 ...

  8. 一篇文章了解HTTP请求报文和响应报文

    概念 HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. 请求报文和响应报文都由三部分组成:起始行.首部.主体. H ...

  9. http请求报文及响应报文

    原创文章,如需转载请注明来自http://blog.csdn.net/aspenstars 谢谢! 一.HTTP报文格式 HTTP报文分为两类:请求报文request, 响应报文response 二. ...

  10. HTTP报文结构详细讲解(HTTP请求报文和响应报文格式)

    HTTP报文结构 HTTP有两类报文: 请求报文-------从客户向服务器发送请求报文,如图6-12(a) 响应报文-------从服务器到客户的回答,如图6-12(b) 由于HTTP是面向文本的, ...

最新文章

  1. Access Denied for user root @localhost 解决方案
  2. Python语言编程之LEGB变量作用域法则
  3. 数据中台应用实战50篇(二)-中台解决方案本质在解决什么问题?
  4. 9.28PMP每日一题
  5. 为什么应该用模块取代C/C++中的头文件?
  6. 渗透实例:The Game Of Bob_1.0.1
  7. 土豆视频ipad 5.0 客户端
  8. 渗透测试工具Nmap从初级到高级
  9. RPA机器人如何通过Usb Server远程连U盾
  10. 2G、3G无线路由器拨号连接过程
  11. 485的信号测试软件,RS485通信测试项目中的压力测试方法、原理及基本测试模型...
  12. Ubuntu 缩减磁盘空间
  13. R语言计算并合并各物种的OTU数量
  14. return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Replacing columns cSerDe may be incompati
  15. AE中文破解版软件屏蔽_破解教程
  16. 追寻着最初的梦想,我们上路吧
  17. toad导入数据_Oracle 使用TOAD实现导入导出Excel数据
  18. EPS是什么文件格式
  19. 【unity shader】基于UGUI字体的outline优化
  20. 内外兼修,从增速到增质的触宝新时代

热门文章

  1. 关于win10打印机设置错误,无法打印的解决办法
  2. 微信支付申请资料及费率
  3. 图像形状上下文特征ShapeContexts
  4. 小日期时间型_利于就业的汽车拆解技术服务师证报名时间、考试流程分几个级别?...
  5. springmvc接收请求参数(springmvc教程二)
  6. PowerDesigner导出PDM和rtf文件
  7. js中判断数据类型的方法
  8. 关于“PS中用魔棒选取之后拖到另一个图层中怎么没颜色了”的解决方法
  9. Bitly发布趋势链接搜索引擎Realtime
  10. Mac系统中移动硬盘热拔(强制退出)后,在插上不显示移动硬盘的问题和解决办法