目录

  • 1 URL(Uniform Resoure Locator)
  • 2 HTTP协议
  • 3 HTTP请求和响应报文
  • 4 查看HTTP协议的通信过程

1 URL(Uniform Resoure Locator)

统一资源定位符,通俗理解就是网络资源地址,通过URL能够找到对应的资源数据。

URL地址:https://www.baidu.com/10/E178J2O489FH.html?page=1&count=10

​ < 协议部分 + 域名 + 资源路径 + 查询参数 >

  • 协议部分: https://、http://、ftp://

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

  • 参数说明:? 后面的page表示第一个参数,后面的参数都使用 & 进行连接

2 HTTP协议

  • HTTP协议的全称是(HyperText Transfer Protocol),超文本传输协议

  • 超文本是指在文本数据的基础上还包括非文本数据,非文本数据有图片音乐视频等,而这些非文本数据会使用链接的方式进行加载显示,通俗来说超文本就是带有链接的文本数据也就是我们常说的网页数据

    HTTP协议的制作者是蒂姆·伯纳斯-李,1991年设计出来的,HTTP协议设计之前目的是传输网页数据的,现在允许传输任意类型的数据。

  • 传输HTTP协议格式的数据是基于TCP传输协议的,发送数据之前需要先建立连接。

  • TCP传输协议是用来保证网络中传输的数据的安全性的,HTTP协议是用来规定这些数据的具体格式的。

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

3 HTTP请求和响应报文

  • HTTP请求报文

    • GET方式的请求报文:获取Web服务器数据

      ---- 请求行 ----
      GET /a/b/c HTTP/1.1  # GET请求方式 请求资源路径 HTTP协议版本
      ---- 请求头 -----
      Host: www.itcast.cn  # 服务器的主机地址和端口号,默认是80
      Connection: keep-alive # 和服务端保持长连接
      Upgrade-Insecure-Requests: 1 # 让浏览器升级不安全请求,使用https请求
      User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36  # 用户代理,也就是客户端的名称
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 # 可接受的数据类型
      Accept-Encoding: gzip, deflate # 可接受的压缩格式
      Accept-Language: zh-CN,zh;q=0.9 #可接受的语言
      Cookie: pgv_pvi=1246921728; # 登录用户的身份标识
      ---- 空行 ----
      

      注意:每项数据之间使用:\r\n

    • POST方式的请求报文:向Web服务器提交数据

      ---- 请求行 ----
      POST /xmweb?host=mail.itcast.cn&_t=1542884567319 HTTP/1.1 # POST请求方式 请求资源路径 HTTP协议版本
      ---- 请求头 ----
      Host: mail.itcast.cn # 服务器的主机地址和端口号,默认是80
      Connection: keep-alive # 和服务端保持长连接
      Content-Type: application/x-www-form-urlencoded  # 告诉服务端请求的数据类型
      User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36 # 客户端的名称
      ---- 空行 ----
      ---- 请求体 ----
      username=hello&pass=hello # 请求参数
      

      注意:每项数据之间使用:\r\n

    总结:

    • 一个HTTP请求报文可以由请求行请求头空行请求体4个部分组成。

    • 请求行是由三部分组成: 请求方式 请求资源路径 HTTP协议版本

    • GET方式的请求报文没有请求体,只有请求行请求头空行组成。

    • POST方式的请求报文可以有请求行请求头空行请求体四部分组成。

      注意:POST方式可以允许没有请求体,但是这种格式很少见。

  • HTTP响应报文

    --- 响应行/状态行 ---
    HTTP/1.1 200 OK # HTTP协议版本 状态码 状态描述
    --- 响应头 ---
    Server: Tengine # 服务器名称
    Content-Type: text/html; charset=UTF-8 # 内容类型
    Connection: keep-alive # 和客户端保持长连接
    Date: Fri, 23 Nov 2018 02:01:05 GMT # 服务端的响应时间
    --- 空行 ---
    --- 响应体 ---
    <!DOCTYPE html><html lang=“en”> …</html> # 响应给客户端的数据
    

    注意:每项数据之间使用:\r\n

    • HTTP状态码:表示Web服务器响应状态

      状态码 说明
      200 服务器已成功处理了请求
      400 错误的请求,请求地址或者参数有误
      404 请求资源在服务器不存在
      500 服务器内部源代码出现错误

    总结:

    • 一个HTTP响应报文是由响应行响应头空行响应体4个部分组成。
    • 响应行是由三部分组成:HTTP协议版本 状态码 状态描述,最常见的状态码是200

4 查看HTTP协议的通信过程

  • 通信原理

注意:每一次浏览器和服务器的数据通讯,都是成对出现的即请求和响应,

同时每一次请求和响应都必须符合HTTP协议的格式

  • 谷歌浏览器开发者工具的使用

    • 标签选项说明:

      • 元素(Elements):用于查看或修改HTML标签
      • 控制台(Console):执行JS代码
      • 源代码(Sources):查看静态资源文件,断点调试JS代码
      • 网络(Network):查看http协议的通信过程
    • 使用说明:

      ①点击Network标签选项

      ②在浏览器地址栏输入百度的网址,就能看到请求百度首页的HTTP的通信过程

      ③这里的每项记录都是请求+响应的一次过程

      • 查看HTTP协议的通信过程

总结:

  • 谷歌浏览器的开发者工具是查看http协议的通信过程利器,通过Network标签选项可以查看每一次的请求和响应的通信过程,调出开发者工具的通用方法是在网页右击选择检查。

  • Headers选项总共有三部分组成:

    General: 主要信息

    Response Headers: 响应头

    Request Headers: 请求头

  • Response选项是查看响应体信息的

【详解】URL及HTTP协议详解相关推荐

  1. WebSocket协议详解及应用

    标签:websocket WebSocket协议详解及应用(七)-WebSocket协议关闭帧 本篇介绍WebSocket协议的关闭帧,包括客户端及服务器如何发送并处理关闭帧.关闭帧错误码及错误处理方 ...

  2. WebRTC中RTP协议详解

    WebRTC中RTP协议详解 WebRTC中RTP协议详解 WebRTC中RTP协议详解 前言 一.RTP/RTCP在协议栈中的位置 1. RTP传输流程图 二.RTP Header 的结构图 1.R ...

  3. HTTP协议详解(真的很经典)

    转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...

  4. [转]HTTP协议详解

    当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...

  5. Http 协议详解笔记

    HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第 ...

  6. Http协议 详解(转载)

    http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分 ...

  7. HTTP协议详解 转自小坦克

    HTTP协议详解 转自小坦克 -- 有些文章是引用别人的,为了方便我以后或不再备注;引用目的是因为直接网摘里面的地址经常被重置,找不到原来的文章 当今web程序的开发技术真是百家争鸣,ASP.NET, ...

  8. 【转】HTTP协议详解

    原文地址:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html 一.概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则 ...

  9. 【HTTP协议】超详细的HTTP协议详解

    基本介绍 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/ ...

最新文章

  1. ASP.NET上传文件对文件类型的高级判断
  2. 常用的绘图约定——提高绘图和读图的效率
  3. python实现气象数据分析统计服_Python数据分析实战:降雨量统计分析报告分析
  4. 宁波中小学生计算机技术展示,2020年宁波市中小学生电脑制作活动创客竞赛暨2020年宁波市中小学生创客大赛顺利举行...
  5. Java实现冒泡排序动画展示
  6. opencv2.2版本中访问像素点的效率问题
  7. 蓬荜生辉的意思是什么?蓬荜生辉用在什么场合?
  8. Zabbix Server安装部署
  9. chattr 设置隐藏属性
  10. 思科CEO自爆:G20虚拟会议用的我家技术
  11. php鲜花销售管理系统论文,鲜花销售系统论文
  12. SpringBoot+JMail
  13. linux wifi问题,Ubuntu下wifi问题解决
  14. libeigen3-dev和eigen有什么区别
  15. openwrt MT7620A编译dropbear
  16. 火焰识别python_五行属火的字大全
  17. VC修改IE滚动条宽度
  18. 计算机硬盘多少克,人的大脑记忆能力相当于电脑多少G的硬盘?真相出乎你意料!...
  19. GNN:A Gentle Introduction to Graph Neural Networks
  20. win10设置IP地址时,报错了,怎么搞。

热门文章

  1. DWM1000 测距原理简单分析 之 SS-TWR代码分析2 -- [蓝点无限]
  2. 如何找一份坐在家里就可以赚钱的工作
  3. 清洗的皮鞋面为什么会出现龟纹呢?
  4. Android Camera生成bmp格式的图片
  5. 程序员如何祝福圣诞节快乐?你没试过这种吧?
  6. 西普学院web题总结
  7. 糖儿飞教你学C++ Socket网络编程——28. 使用select模型实现一对多通信
  8. 用C++ RAII思想写windows驱动
  9. idea设置快捷键无效
  10. PyMySQL 安装