饥人谷技术博客

HTTP

2018-03-12  本文已影响2人  饥人谷_黄洪涛

title: http
date: 2018-03-11 23:45:50
tags: URL 请求 响应 URL http协议 curl


URL

URL 俗称网址 , 也就是统一资源定位符/定位地址

URL 的组成

https://www.baidu.com/s?wd=hello&rsv_spt=1#1

https 为超文本传输协议,两个电脑之间传输内容的协议 。也就是说前面的http 或者 https指的是协议

www.baidu.com 域名

/s 路径, 这个路径非计算机中文件路径。 https://www.baidu.com 这个网址默认会有一个 /的路径

wd=hello&rsv_spt=1 查询参数 ,可以点击 https://www.baidu.com/s?wd=hi&rsv_spt=1#1 会发现变成了在百度hi的内容

#1 锚点 , 将网站#1 变为 #3 ,点击 https://www.baidu.com/s?wd=hello&rsv_spt=1#3 会发现直接显示在第一行的是该搜索项网页的第三个链接 ,多次修改#后面的数字就会明白了

:80 其实这个网址还有一个端口号,http协议的服务端口号就是对应的80。https://www.baidu.com/s?wd=hello&rsv_spt=1#1:80 这个网址的效果和 https://www.baidu.com/s?wd=hello&rsv_spt=1#1是一样的。

DNS

网域名称系统(DNS,Domain Name System,有时也简称为域名)是因特网的一项核心服务,它作为可以将域名和IP
地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

例如,www.wikipedia.org是一个域名,和IP地址208.80.152.2相对应。DNS就像是一个自动的电话号码簿,我们可以
直接拨打wikipedia的名字来代替电话号码(IP地址)。我们直接调用网站的名字以后,DNS就会将便于人类使用的名字
(如www.wikipedia.org)转化成便于机器识别的IP地址(如208.80.152.2)。[1]

两种查看域名对应IP地址的方法

nslookup baidu.com
ping baidu.com

请求

请求百度页面

F12打开控制台 查看Network

访问百度网站 ,我们点击第一个,然后点Request 右边的view


请求的格式是:

1 动词 路径 协议/版本
2 Key1: value1
2 Key2: value2
2 Key3: value3
2 Content-Type: application/x-www-form-urlencoded
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0
3 
4 要上传的数据

分析请求

GET / HTTP/1.1                        动词 路径 协议/版本
Host: www.baidu.com               key1
Connection: keep-alive             key2
Cache-Control: max-age=0      key3
...   
  1. 请求最多包含四部分,最少包含三部分。(也就是说第四部分可以为空)
  2. 第三部分永远都是一个回车(\n)
  3. 动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
    i. GET就是获取的意思
    ii. POST 就是上传的意思, 上传信息会有一个content-length : 上传的数据长度 ,然后第四部分会有上传信息的内容
    iii.
  4. 这里的路径包括「查询参数」,但不包括「锚点」
  5. 如果你没有写路径,那么路径默认为 /
  6. 第 2 部分中的 Content-Type 标注了第 4 部分的格式
  7. 如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到

响应

有请求就有响应,下面是百度的响应

HTTP/1.1 200 OK
Bdpagetype: 2
Bdqid: 0x8f2fe8e100013131
Bduserid: 941701595
Cache-Control: private
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Mon, 12 Mar 2018 14:49:48 GMT
...

响应的格式:

1 协议/版本号 状态码 状态解释
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 要下载的内容
上一篇 下一篇

猜你喜欢

热点阅读