6、HTTP入门


李爵士发明了万维网,从此世界上的人便可以一起上网了

主要包含三个概念 URI、HTTP(HyperText Transfer Protocol)、HTML(HyperText Markup Language)
他还发明了以下技术:
1、发明了第一个服务器
2、发明了第一个浏览器
3、写出了第一个网页

名称 作用
URI 俗称网址,通常用它得孩子URL
HTTP 让你能够下载这个网页
HTML 让你能看懂这个网页

URI 分为 URL(Uniform Resource Locator)和URN

URI 是统一资源标识符
URL 是统一资源定位符,可以访问到某个网页的具体位置,就是我们平常所说的网址
https://www.baidu.com/s?wd=hello&rsv_spt=1#5 通过这个你就可以访问到一个 "唯一的" 网址

名字 作用
https: 协议
www.baidu.com 域名
/s 路径
wd=hello&rsv_spt=1 查询参数
#5 锚点,就是你搜素的结果的div的id
端口还没有学,但是完整的URL包括这6部分

URN 是统一资源命名,类似于书籍的ISBN,唯一的一个编号


DNS(Domain Name System)

你输入一个网址,先向DNS去问一下,这个网址的ip,返会给你,然后就可以访问到了。

  • 输入域名
  • 可以返回对应的IP
nslookup baidu.com
ping baidu.com

我们可以修改hosts,文件去访问谷歌

C:\Windows\System32\drivers\etc\hosts
# Github Start
192.30.253.118  gist.github.com
151.101.72.249  global-ssl.fastly.net

服务器和浏览器的交互 ------server client HTTP之间的关系

1、client发送请求

curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"
//这是get请求
> GET / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.49.1
> Accept: */*
> frank: xxx
curl -X POST -s -v -H "Frank: xxx" -- "https://www.baidu.com"
//这是post请求
> POST / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.49.1
> Accept: */*
> Frank: xxx
curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"
//提交一些内容到百度
> POST / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.49.1
> Accept: */*
> Frank: xxx
> Content-Length: 10
> Content-Type: application/x-www-form-urlencoded
>


  • 如果是获得数据用get
  • 如果是提交数据用post
    https://www.baidu.com 模仿用户登录,你的密码在 Form Data里面,打开network查看,一定记得 view source
    post请求.png

    post详解.png

    在浏览器和服务器交互的那块代码里面,没有带查询参数,下面这个是带参数的
curl -s -v  -- "https://www.baidu.com/s...后面一堆参数"
request的路径.png

总结一下 请求和响应的基本格式

  • 请求的基本格式
1、动词 路径 协议/版本号
2、key1: value1
2、key2: value2
2、key3: value3
2、key4: value4
2、Content-Type: application/x-www-form-urlencoded
2、Host: www.baidu.com
2、User-Agent: curl/7.54.0
3、 必然是一个换行,用以区分第2部分和第4部分
4、 要上传的数据

1.请求最多包含四部分,最少包含三部分。(也就是说第四部分可以为空)
2.第三部分永远都是一个回车(\n)
3.动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
4.这里的路径包括「查询参数」,但不包括「锚点」详见上图的请求路径
5.如果你没有写路径,那么路径默认为 /
6.第 2 部分中的 Content-Type 标注了第 4 部分的格式


2、服务器开放80端口,接收请求,返回内容(响应)
3、浏览器负责下载响应内容

  • 响应的基本格式
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 2443
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:14:05 GMT
Etag: "5886041d-98b"
Last-Modified: Mon, 23 Jan 2017 13:24:45 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/

<!DOCTYPE html>
<!--STATUS OK--><html> <head> 后面太长,省略了……
1、协议/版本 状态码 解释
2、key1: value1
2、key2: value2
2、key3: value3
2、key4: value4
2、Content-Length: 17931
2、Content-Type: text/html
3
4 要下载的内容

同样的Content-Type规定了第4部分要下载的内容

常见状态码解释
200 ok
301 访问的内容永久转移了
302 暂时的重定向 要求客户端执行临时重定向(原始描述短语为“Moved Temporarily”)。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。
403 服务器已经理解请求,但是拒绝执行它
404 你访问的文件不存在
500 通用错误消息,服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。没有给出具体错误信息
502 服务器关闭 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,638评论 18 139
  • 1. 网络基础TCP/IP HTTP基于TCP/IP协议族,HTTP属于它内部的一个子集。 把互联网相关联的协议集...
    yozosann阅读 3,441评论 0 20
  • API定义规范 本规范设计基于如下使用场景: 请求频率不是非常高:如果产品的使用周期内请求频率非常高,建议使用双通...
    有涯逐无涯阅读 2,521评论 0 6
  • (原话)谈谈对HTTP协议的理解:超文本传输协议,应用于OSI网络模型中的应用层,是用于服务器传输超文本到本地浏览...
    24_yu阅读 878评论 0 1
  • 2016.12.11-2017.3.20百日读50本书,百日码字30万(截止2016.12.10,简书上原存字32...
    叶两步阅读 310评论 3 22