http 初步了解(一)

本系列大概分为以下几个部分

  • 1: 了解协议,dns,dhcp,ISP,CDN
  • 2: 了解http 请求体:header,body,response
  • 3: http常见的error code
  • 4: http1.0 与http 2.0的区别;

网络基础

DNS : domain name service:域名解析服务 The DNS is a distributed database which keeps track of computer's names and their corresponding IP addresses on the Internet.dns 就是分布式数据库,记录着电脑名称与ip之间的关系,dns的结构图如同IP寻址层级关系;参考class loader的class关系的查找顺序;具体关系图参考如下:

image

协议与包: 每个连接到网络中的终端设备都有一个唯一的IP地址;A(1.2.3.4)到B(5.6.7.8)之间的通信,就是将文本信息转化成数据信号,然后通过网络进行传输;然后通过协议栈,将数字信号转换成文本信息;TCP/IP 协议栈展示如下:

协议栈 备注
应用层 主要分为www,电子邮箱,FTP服务器
传输层 tcp包,通过某个端口,像某个具体的应用层提供服务
IP网络层 ip路由通过IP地址,定位到具体的某个电脑
物理链路层 将二进制包转换成网络信号
image

当终端A (IP地址1.2.3.4)传输数据到终端B(IP 地址:5.6.7.8)的时候,经过哪些过程?

  • 数据从最高的应用层,向下开始解析传输;
  • 如果传输的数据比较长,每一层协议都会将消息打成小的message,即:数据包;因为每一层数据都对于数据长度,都有限制
  • 数据包,先从应用层,然后解析成TCP传输层(大部分应用都会利用该协议,不安全的传输方式),每个包会分配到特定的端口;然后终端B,通过不断接听特定的端口,然后接受到特定的数据;
  • 经过了TCP层处理之后,数据会通过到IP层;通过IP层的,数据包能够解析到目标终端IP(5.6.7.8)
  • 现在我们的消息体有了目标端口以及目标的IP地址 ; 链路层将字符的文本数据转换成数字信息,通过网络开始传输
  • 你本地的终端,通过local ISP直连到外部网络;ISP本地路由,会检验你本地的包,然后确定每个包的网络路由路线;
  • 最终,数据包(chunks message)到达目标IP(5.6.7.8),然后,这个包将从通过协议栈,向上解析数据;
  • 数据到达目标终端的时候;通过每个协议栈的时候,能够增加一些数据(包括source IP,端口号)
  • 当数据到达最高的协议栈的时候,包会被召集起来,组织成数据‘hello computer ,5.6.7.8’

CDN: 地理上分布式proxy servers 以及数据中心;目的为终端用户提供高可用,性能好的服务;内容分发网络 (CDN) 用来加快向最终用户交付 Web 内容的主要技术是边缘缓存,该技术需要将静态文本、图像、音频和视频内容的副本存储在互联网“边界”周围的多个服务器上,这样用户请求就可以得到附近的边界服务器处理,而不是一台遥远的源服务器。

http请求体

常见的请求体:

The following example illustrates a typical message exchange for a GET request (Section 4.3.1 of [RFC7231]) on the URI "http://www.example.com/hello.txt": Client request:

 GET /hello.txt HTTP/1.1
 User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
 Host: www.example.com
 Accept-Language: en, mi

Server response:

 HTTP/1.1 200 OK
 Date: Mon, 27 Jul 2009 12:28:53 GMT
 Server: Apache
 Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
 ETag: "34aa387-d-1568eb00"
 Accept-Ranges: bytes
 Content-Length: 51
 Vary: Accept-Encoding
 Content-Type: text/plain

 Hello World! My payload includes a trailing CRLF.

```

PS

  • HTTP/1.1 →Initially it is RFC 2616 but later replaced by RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7234, RFC 7235. So, we need to read from RFC 7230 to RFC 7235 to implement basic workings of HTTP.
  • HTTP/2 → RFC 7540 and RFC 7541
  • FTP → RFC959

参考文献:

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

推荐阅读更多精彩内容

  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    JasonShi6306421阅读 1,237评论 0 1
  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 5,952评论 1 13
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,051评论 0 8
  • 文章首发于个人blog欢迎指正补充,可联系lionsom_lin@qq.com原文地址:《网络是怎样连接的》阅读整...
    lionsom_lin阅读 14,138评论 6 31
  • 一、什么是TCP/IP 网络和协议 1. TCP/IP是一类协议系统,它是一套支持网络通信的协议集合。网络是计算机...
    karlon的马甲阅读 6,523评论 1 24