note_006http入门

www(World Wide Web)

主要有三个概念

  • URI 俗称网址
  • HTTP 两台电脑之间的传输协议
  • HTML 超文本标记语言,用于页面跳转

URL的作用是让你访问一个网页,HTTP的作用是让你能下载这个页面,HTML是让你能看懂这个网页。

URI 是什么(统一资源标识符)

URI分为两种URL(统一资源定位符)和URN(统一资源名称)

URN

ISBN:9934123123123 书号,这就是一个URN 可以确定一个"唯一的"资源

URL

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

  • https代表--协议
  • www.baidu.com 代表--域名
  • /s代表--路径
  • wd=hello&rev_spt=1代表--查询参数
  • “#5” 代表--锚点

.com代表一级(顶级)域名 baidu代表二级域名 www是三级域名
但是一般的工程师都会把.com忽略掉,把baidu叫做一级域名 此时要脑补他说的是错的

URL的常见组成

DNS 域名解析器

命令行里输入 nslookup www.baidu.com就可以看见这个网址对应服务器相关信息


Server: 192.168.5.1   
这个是我的路由(他去问的电信,电信帮你解析网址对应的ip电信为什么知道你花钱啦)
Address:  192.168.5.1#53

Name:  www.baidu.com 
Address:  119.75.213.61 这个服务器告诉你百度的ip 每个人返回的IP不一样

dns会根据一个域名返回一个ip
那我可以不可以指定一个ip(可以)这就是如何绕过dns自己指定一个ip
非常时期可以修改host文件(window系统)自己指定google的ip
因为电信返回的ip是错的。

示意图

http

示意图

curl 命令

 curl -s -v -H "hjx:xxx" -- "https://www.baidu.com"
  • -s代表不显示进度
  • -v代表显示请求和响应
  • -H "hjx:xxx" 添加一个请求头
  • -- 'https://www.baidu.com ' 代表要请求的网址
* Rebuilt URL to: https://www.baidu.com/
*   Trying 119.75.216.20...
* TCP_NODELAY set
...
*  SSL certificate verify ok.

> GET / HTTP/1.1    "/"代表根目录 HTTP/1.1代表协议和版本号
> Host: www.baidu.com   就是访问的域名
> User-Agent: curl/7.55.1  我用的什么软件发起的响应
> Accept: */*   我接受你返回给我的任何内容
> hjx:xxx   可以删掉没有任何意义  删除 - H参数就可以
>    

< 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, 02 Jan 2018 15:44:59 GMT
< Etag: "588603ec-98b"
< Last-Modified: Mon, 23 Jan 2017 13:23:56 GMT
< Pragma: no-cache
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
<
* Connection #0 to host www.baidu.com left intact
  • *开头的代表注释
  • “>” 代表请求内容
  • ”<“ 代表响应内容

重新修改请求

curl -X POST -s -v -H "hjx:xxx" -- "https://www.baidu.com" 

请求的内容为

POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
hjx: xxx

继续修改

curl -X POST -d "1234567890" -s -v -H "hjx: xxx" -- "https://www.baidu.com"
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
hjx: xxx
Content-Length: 10  代表上传数据的字节
Content-Type: application/x-www-form-urlencoded 上传的格式

1234567890

get和post的区别

  • get就是获取内容
  • post就是上传内容

疑问

curl -s -v -H "host:www.qq.com" -- "https://www.baidu.com" 修改访问的域名
相当于你去麦当劳问有没有老北京鸡肉卷

请求的格式

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 要上传的数据

1.请求最多包含四部分,最少包含三部分。(也就是说第四部分可以为空)
2.第三部分永远都是一个回车(\n)
3.动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等

  • PUT 代表 五行话替换成一行 整体更新
  • PATCH 代表 五行话里其中一行替换 一行 局部更新
  • DELETE 删除
    4.这里的路径包括「查询参数」,但不包括「锚点」
    5.如果你没有写路径,那么路径默认为 /
    6.第 2 部分中的 Content-Type 标注了第 4 部分的格式

x-www-form-urlencoded

  • x 代表没有被写入规范的格式
  • www 万维网
  • urlencoded 解析中文

用 Chrome 查看响应

1.打开 Network
2.输入网址
3.选中第一个响应
4.查看 Response Headers,点击「view source」,点击「view source」,点击「view source」
5.你会看到响应的前两部分
6.查看 Response 或者 Preview,你会看到响应的第 4 部分

http 和https

http是明文传输 就是你的登录密码别人别人可以看到不是加密的
https 就是 密码这些东西是经过加密的 无法直接看到内容

响应

请求了之后,应该都能得到一个响应,除非断网了,或者服务器宕机了。

响应示例
上面三个请求示例,前两个请求对应的响应分别为

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>
<html> <head> 后面太长,省略了……
HTTP/1.1 302 Found
Connection: Keep-Alive
Content-Length: 17931
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:19:47 GMT
Etag: "54d9749e-460b"
Server: bfe/1.0.8.18

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"> 后面太长,省略了……
GET 请求和 POST 请求对应的响应可以一样,也可以不一样
响应的第四部分可以很长很长很长
响应的格式

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

状态码要背,是服务器对浏览器说的话

1xx 不常用
2xx 表示成功
3xx 表示滚吧
4xx 表示你丫错了
5xx 表示好吧,我错了

200 一般的成功
204 创建成功 一般post返回204
301 表示你访问的资源已经不在了 迁移到其他域名返还给你新的地址
302 表示你访问的资源只是临时不在了 敏感信息封禁了一段时间
304 表示你访问的内容和上一次一样,返回上一次的内容
404 未找到页面 网址错了
502 服务器挂了

状态解释没什么用
第 2 部分中的 Content-Type 标注了第 4 部分的格式
第 2 部分中的 Content-Type 遵循 MIME 规范
用 Chrome 查看响应
打开 Network
输入网址
选中第一个响应
查看 Response Headers,点击「view source」,点击「view source」,点击「view source」
你会看到响应的前两部分
查看 Response 或者 Preview,你会看到响应的第 4 部分

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,973评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,646评论 18 139
  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,339评论 6 152
  • 版本判断1.1版本判断 截取内容软件名称:金烏代刷网【换行】软件版本:1.1【换行】软件大小:未知【换行】发布时间...
    金乌工作室阅读 196评论 0 0
  • 20个月大的跳跳会说晚安;爸爸妈妈爷爷奶奶...好; 饿的时候拍着沙发说妈妈坐(给她喂奶); ...
    大胖妞的妈阅读 218评论 0 0