前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >超文本传输协议HTTP

超文本传输协议HTTP

作者头像
十二惊惶
发布2024-02-28 20:48:54
1590
发布2024-02-28 20:48:54
举报

超文本传输协议HTTP

代码语言:javascript
复制
#	掌握HTTP的报文格式
#	掌握HTTP的工作原理
#	掌握HTTP常用方法

万维网体系结构

万维网,全称为World Wide Web,是一个由许多互相链接的超文本组成的系统,通过互联网访问。

  • 在这个系统中,每个有用的事物,称为“资源”,由全局“统一资源标识符(URL)”标识;这些资源通过超文本传输协议传送给用户,用户通过点击超链接来获得资源
  • 每一个网站保存有一个或多个文档,叫做万维网页面。浏览器用来读取万维网上的文档
    • 客户需要查看网站A的某些信息,它向网站A发送一个请求,请求包含了网站A和其中万维网页面的地址,称为统一资源定位符(URL)
    • 网站A收到请求后,将指定的文档发送给这个客户。

用户访问万维网的示意图 >

WWW服务是分布式的客户/服务器模式

浏览器:客户端程序,可以解释和显示万维网页面。

服务器:

  • 万维网页面存储在服务器上,当客户请求到达时,对应的页面就发送给客户
  • 为了提高效率,服务器通常在其高速缓存中存放被请求过的页面
  • 通过多线程或多进程可使服务器的效率更加提高,服务器在同一时间可回答多个请求
统一资源定位符(URL)

Uniform Resource Locator,用于表示Internet上资源的位置和访问方法

  • URL由4部分组成:
    1. 协议:指定了用这个URL的客户/服务器程序。如,HTTP、FTP和TELNET等
    2. 主机:指明了信息所存放的地址,可以是逻辑地址也可以是相应的域名
    3. 端口:指定了使用主机的某个端口,端口是可选的。 如果包含了端口,那么端口就插入在主机和路径之间,和主机用冒号分隔开
    4. 路径:指定了文件存放的位置。路径本身可以包含斜线,用于将目录与子目录和文件分隔开。

统一资源定位符格式: ##### 静态文档

内容固定的文档,由服务器创建。文档的内容是在创建文档时就确定的,而不是在使用它时。

动态文档

在浏览器请求该文档时才由万维网服务器创建出来。当请水到丛的,力维网服务器就运行创建动态文档的应用程序。服务器返回这个程序或脚本的输出,把它作为对请求该文档的浏览器的响应。 对每个请求都创建出新的文档,所以每个请求得到的动态文档内容可能不同。

活动文档

有些文档需要程序在客户端运行,称为活动文档。当浏览器请求活动文档时,服务器就发送这个文档的一个副本或脚本,然后这个文档就在客户(浏览器)端运行。

HTTP报文格式:

超文本传输协议,Hyperlext Transfer Protocol,用于访问万维网上的数据

它是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。 协议以普通文本、超文本、音频、视频等格式传输数据,它可以快速的在文档之间跳转

  • HTTP是一个应用层协议,它使用TCP连接进行可靠的传送,在熟知端口80上提供服务。

HTTP报文有两种类型:请求报文和响应报文 - 两种报文格式只有开始行不同。

  • 首部行
  • 用来说明浏览器、服务器或报文主体的一些信息。
  • 由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔,结束的地方都要有回车换行
  • 首部可以有好几行,但也可以不使用。
  • 整个首部行结束时,还要有一个空行将首部行和后面的实体主体分
  • 实体主体
    • 在请求报文中一般不用,而在响应报文中也可能没有这个字段
HTTP请求报文:
  • 方法:
    • 常见的有GET和POST方法,在地址栏中输入网址访问网页时,浏览器采用GET方法向服务器获取资源,POST方法要求服务器接受附在请求后面的数据,常用于提交表单。
  • URL:向服务器请求的资源
  • HTTP版本:目前是http/1.1。
  • 首部字段:
    • Accept:指定客户端接受哪些类型的信息,如text/html,image/gif等
    • Accept-Language:指定一种自然语言。
    • Accept-Encoding:指定可接受的内容编码,如gzip, deflate。
    • User-Agent: 允许客户端将它的操作系统、浏览器和其它属性告诉服务器
    • Host:目标服务器
    • Connection:连接状态,如Keep-Alive,Close。
HTTP回应报文
  • 版本:与请求报文相同
  • 状态码:表示服务器的响应类型,有三位数字组成,其中第一个数字定义了响应的类别,有五种可能取值:
    • 1xx:通知信息—表示请求已接收,继续处理
    • 2xx:成功—表示请求已被成功接收、理解、接受
    • 3xx:重定向一用于已经移动的文件
    • 4xx:客户端错误—请求有语法错误或请求无法实现
    • 5xx:服务器端错误—服务器失效无法完成请求

HTTP协议状态码: - 短语:解释状态码的简单短语 - 首部字段 - Date:消息产生时间 - Server:服务器用来处理请求的软件 - Set- cookie:设置Cookie及其路径 - Content-Length:实体正文的长度,十进制 - Connection:连接状态。 - Content-Type:发送给接收者的实体正文的媒体类型,如Content-Type:text/html;charset=GB2312。

持久与非持久链接

非持久连接
  • 对每一个请求/响应都要建立一次TCP连接
  • 非持久连接策略给服务器造成了很大的开销,因为服务器需要N个不同的缓存,而每次打开连接时都要使用慢开始过程
  • 版本1.1以前的HTTP协议默认是非持久连接
持久连接
  • 在使用持久连接时,服务器在发送响应后,让连接继续为一些请求打开
  • 服务器可以在客户发送关闭请求时等待或关闭这个连接。
  • 服务器可在相同的TCP连接上向客户发送多个对象 HTTP版本1.1默认使用持久连接策略。

万维网的工作过程:

每个万维网网点都有一个服务器,它不断地监听TCP的端口80,以便发现是否有浏览器(即万维网客户)向它发出连接建立请求。一旦监听到连接请求并建立了TCP连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。最后释放TCP连接。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 超文本传输协议HTTP
    • 万维网体系结构
      • 统一资源定位符(URL)
    • HTTP报文格式:
      • HTTP请求报文:
      • HTTP回应报文
    • 持久与非持久链接
      • 非持久连接
      • 持久连接
    • 万维网的工作过程:
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档