HTTP入门

上次介绍如何学习Linux命令行, 这次我们就来介绍介绍HTTP的入门知识吧, 这次大概会简单的介绍一下HTTP请求和响应里面包含哪些内容, 然后怎么用chrome查看请求头, 响应头, 算是HTTP最最最简单的入门知识吧


什么是HTTP

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议, 所有的www文件都必须遵守这个标准, HTTP是全球网络资讯的數據通信的基礎

简单来说, 当我们访问互联网时候, 就是通过http协议来让我们电脑和你访问的网站进行通讯的

通常情况下, 我们访问一个网站的步骤大体上是这样的


HTTP传输
  1. 我们在浏览器输入网址后, 浏览器会出现一个地址, 通常是http://或者https://开头的, 我们把这个叫做URL
  2. 通过URL地址,就可以确定我们是向哪个服务器发送HTTP请求, 之后HTTP请求就会发送到那个服务器了
  3. 网站的服务器接收到HTTP请求后,根据HTTP请求内容返回对应的HTTP响应给我们的浏览器
  4. 浏览器根据HTTP响应的内容生成对应网页

那么到底URL是什么, HTTP请求有是什么, HTTP响应又是什么, 当我们搞懂这些东西后, HTTP就算是基本入门啦


URI和URL

通过上面的访问一个网站的步骤我们知道, 我们是通过URL来告诉浏览器应该发送HTTP请求给哪台服务器,(不然他怎么知道我们是想访问baidu还是google又或者是tencent呢), 那么URL到底是个什么东西呢?

URI

URI:(Uniform Resource Identifier 的缩写,统一资源标识符),一种字符串文本标准, 这种文本主要是用来确定一个唯一资源的, URL是URI的一种, 就是说,URI 属于父类,而 URL 属于 URI 的子类

URL

URL:(Uniform/Universal Resource Locator 的缩写,统一资源定位符)
上面我们说了URI是用来确定一个唯一资源的字符串文本标准,他能用来确定一个资源, 具有唯一性,那么在互联网领域, 我们就规定用URI的一个子集URL来表示我们要访问的资源具体放在哪里,。

打个比方吧, 当我们访问百度这个网站, 请求就是通过百度的URL地址来定位百度的服务器在哪儿的, 这样就不会因为不知道百度服务器在哪儿,把请求发送到谷歌的服务器去

URL组成

我们借用一下饥人谷方方老师的图来说明一下域名的组成

域名组成
  • 协议:
    这个就是告诉浏览器, 我们通过什么协议来发送请求, 一般访问网站我们就是http或者https, 当然还有ftp之类的很多协议, 有兴趣的同学请自行google

  • 域名
    是由一串用点分隔的名字组成的Internet上某一台计算机计算机组的名称,用于在数据传输时标识计算机的电子方位

    有一定计算机知识的同学肯定知道我们一般是通过IP地址定位网络上一台主机位置的, 但是由于IP地址不便于记忆等原因. 就产生了用域名这种具有文字意义的标示方法来标识网络上某台计算机的方法,通过DNS将域名与具体的IP地址进行关联, 就可以实现用域名来标示网络上某台计算机位置的功能了

    至于IP相关的知识在这里就不讲了, 毕竟这是一个HTTP的入门教程, IP的话有兴趣的同学可以自行百度TCP/IP协议相关知识, 或者买一本《图解HTTP》自行研究

  • DNS
    DNS 全名叫 Domain Name Server,中文俗称“域名服务器”,正如上面所讲,在网上辨别一台电脑的方法是利用 IP地址,但是 IP用数字表示,没有特殊的意义,很不好记,因此,我们一般会为网上的电脑取一个有某种含义又容易记忆域名, 比如baidu, 我们一般都直接输入www.baidu.com就好了, 根本不会去记百度的IP地址。但是由于在 Internet 上真实辨认机器的还是IP,所以当使用者在浏览器中输入域名后,浏览器必须先到一台有域名和 IP 对应信息的主机去查询这台电脑的 IP,而这台被查询的主机,我们称它为 Domain Name Server,简称 DNS

  • 路径
    /之后(包括'/')到?之前的内容, 不同的路径表示不同的位置, 服务器会根据不同的路径返回不同的内容, 这里我要强调一下, 这个路径虽然看起来很像windows电脑的路径, 但是实际上这两个没有什么关系, 最好别按windows文件路径来理解, 这里的路径就是表示不同的位置而已, 即使用/hello.txt这种路径也不代表返回的是txt文件, 返回什么完全是由后台程序员写的程序决定

  • 查询参数
    ?之后(包括?)到#之前的内容, 用于查询通常包含若干由等号连接的键值对组成, 每个之间由&隔开例如?a=1&b=2&c=3

  • 锚点
    #及之后的内容, 锚点的作用就跟名字一样, 我们都知道锚是用来固定位置的, 那么锚点主要作用也是用来指定位置的, 通常我们用锚点来跳转到页面中的指定位置


HTTP请求

当我们在浏览器中输入URL地址后, 浏览器就会发送一条HTTP请求, 那么HTTP请求包含哪些内容呢, 下面我们先说一下怎么通过chrome浏览器查看HTTP请求和响应

如何通过chrome浏览器查看http请求和响应

1.在chrome浏览器中按键盘上的F12键, 就会出现下面截图右边的这个功能区, 然后点Network

开发者工具

  1. 在浏览器的地址栏输入www.baidu.com, 然后我们会发现我们的Network功能区出现了好多的文件一样的东西, 我们网上翻, 找到带有index字样的文件, 这个就是百度首页的请求响应文件
    Network

3.然后点击一下这个文件, 就会看到跟我下面的图一样的界面, Response Headers就是响应头, Request Headers就是请求头, Response就是响应内容, 记得一定要点view source!!!!, 记得一定要点view source!!!!, 记得一定要点view source!!!!

请求文件

HTTP请求内容

HTTP请求一般分为四部分, 我们拿图来说明, 我从网上找了个图啊
第一部分: 请求行, 图上的1, 2, 3
第二部分: 请求头, 图上的4
第三部分: 一个回车
第四部分: 请求体, 图上的5


HTTP请求
  • 请求行
    这里面包含三个内容, 请求方法, 请求路径, HTTP协议及版本, 这里面特别说明一下, 请求路径是包含查询参数的, 但是不包含锚点
    请求有哪些方法及这些方法的作用作用请自行百度, 这里就不展开了

  • 请求头
    请求头是由若干个键值对组成的, 描述了请求的要求参数, 如

    内容 含义
    Accept: image/jpeg, application/x-ms-application 接收的数据类型
    Content-Length: 112 请求体内容长度112字节
    User-Agent: MOzilla/4.0 用户代理类型

    具体内容可以参考下面这个文章HTTP请求头分类

  • 请求体
    请求具体内容, 在chrome浏览器里查看请求的时候, 一般看不到请求体


HTTP响应

HTTP响应内容

当服务器接收到HTTP请求后, 会根据请求的具体内容返回响应, 我又从网上找了个图。。。

HTTP响应跟请求一样, 也是分为四部分
第一部分: 响应行
第二部分: 响应头
第三部分: 回车
第四部分: 响应体

HTTP响应
  • 响应行
    响应行包括HTTP版本协议, 状态码, 状态码描述

  • 状态码
    状态码简单来说就是响应对于请求做出何种反馈的代码, 通常我们分为以下几大类型

状态码 类别 原因短语
1XX Informational 信息性状态码 接收请求正在处理
2XX Success 成功状态状态码 请求正常处理完毕
3XX Redirection 重定向状态码 需要进行附加操作以完成请求, 意思就是要浏览器换个地方请求
4XX Client Error 客户端错误状态码 服务器无法处理请求, 意思就是说浏览器的请求错啦
5XX Server Error 服务器错误状态码 服务器处理请求出错, 意思是说服务器自己出问题啦

具体HTTP包含哪些, 请看下面这个链接HTTP状态吗

  • 响应头
    这个部分跟请求头一样, 也是一堆键值对, 包含了响应的参数, 比如Content-Length表示响应内容长度
    Content-Type表示响应内容类型等, 具体的也请大家自己研究吧

  • 响应体
    响应的具体内容, 比如返回一个html网页什么的


到这里HTTP入门部分算是讲完了, 其实也就是大概说了一下, 主要目的就是希望大家能对HTTP协议有个基本的认识, 更深层的内容请大家自己下来好好研究吧。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • 万维网的来历: 1990年Tim Berners-Lee 发明了用网址就能访问网页的办法,他发明了第一个网页、第一...
    joker731阅读 785评论 0 2
  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,328评论 6 152
  • HTTP概述 超文本传输协议(HTTP,HyperText Transfer Protocol) 是互联网上应用最...
    曹渊说创业阅读 3,838评论 2 61
  • 用markdown做笔记,参考文档可以轻松上手。 用markdown做笔记 Markdown 跟 HTML 一样,...
    明眸yh阅读 3,034评论 0 6