码迷,mamicode.com
首页 > 其他好文 > 详细

读书笔记1-网络的怎么连接的

时间:2017-08-31 19:09:04      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:标识   请求   http   param   服务器端   资源   alt   存在   name   

总体概况

web浏览器-TCP/IP-网卡驱动-集线盒/路由器-电话局-网络运营商-电话局-防火墙-缓存服务器-网卡驱动-TCP/IP-web服务器程序

一、在浏览器中输入网址发生了什么

1、生成 HTTP 请求消息

URL:统一资源定位符

<scheme>://<user>:<pasword>@<host>:<port>/<path>;<params>?<query>#<frag>

http://glasscom.com/dir/file1.htm

URL 表示要访问 www.lab.glasscom.com 这个 Web 服务器上路径名为 /dir/file1.html 的文件,也就是位于 /dir/ 目录下的 file1.html 这个文件

  • 对URL进行解析
  • HTTP协议

  客户端向浏览器发生请求信息:“对什么”(URL)——“进行什么样的操作”(方法)

  起始行

  Headers

  Body

    请求行/状态行:【请求方法】【请求网址 】【协议版本 】 ——【协议版本】【响应状态码】【状态码描述

    请求头:键值

    内容:get请求中通常没有实体


 

header

Cache - Control ○ 控制缓存的相关信息

Connection ○ 设置发送响应之后TCP连接是否继续保持的通信选项

Via ○ 记录途中经过的代理和网关

请求头

Authorization ○ 身份认证数据

If - Modified - Since ○ 如果希望仅当数据在某个日期之后有更新时才执行请求,可以在这个字段指定希望的日期。一般来说,这个功能的用途在于判断客户端缓存的数据是否已经过期,如果已经过期则获取新的数据

User - Agent ○ ○ 客户端软件的名称和版本号等相关信息

Accept  ○ 客户端可支持的数据类型(Content - Type),以MIME 类型来表示

Accept - Charset △ ○ 客户端可支持的字符集

Accept - Encoding △ ○ 客户端可支持的编码格式(Content - Encoding),一般来说表示数据的压缩格式

Accept - Language △ ○ 客户端可支持的语言,汉语为 zh,英语为 en

Host ○ 接收请求的服务器 IP 地址和端口号

If - Match ○ 参见 Etag

If - None - Match ○ 参见 Etag

If - Unmodified - Since ○ 当指定日期之后数据未更新时执行请求

响应头部

Location ○ ○ 表示信息的准确位置。当请求的 URI 为相对路径时,这个字段用来返回绝对路径

Server ○ ○ 服务器程序的名称和版本号等相关信息

WWW - Authenticate ○ ○ 当请求的信息存在访问控制时,返回身份认证用的数据(Challenge)

Accept - Ranges ○ 当希望仅请求部分数据(使用 Range 来指定范围)时,服务器会告知客户端是否支持这一功能

Content - Length ○ ○ 表示消息体的长度

Expires ○ ○ 表示消息体的有效期

Last - Modified ○ ○ 数据的最后更新日期

Etag ○ 在更新操作中,有时候需要基于上一次请求的响应数据来发送下一次请求。在这种情况下,这个字段可以用来提供上次响应与下次请求之间的关联信息。上次响应中,服务器会通过 Etag 向客户端发送一个唯一标识,在下次请求中客户端可以通过 If -Match、If - None - Match、If - Range 字段将这个标识告知服务器,这样服务器就知道该请求和上次的响应是相关的。这个字段的功能和 Cookie 是相同的,但 Cookie 是网景(Netscape)公司自行开发的规格,而 Etag 是将其进行标准化后的规格


 

2、向 DNS 服务器查询 Web 服务器的 IP 地址

IP地址-DNS域名解析

根据域名查询 IP 地址;

了解 TCP/IP 的基本思路:就是由一些小的子网(子网可以理解为用集线器连接起来的几台计算机,我们将它看作一个单位,称为子网。),通过路由器连接起来组成一个大的网络。这里的将子网通过路由器连接起来,就形成了一个网络。

路由器:一种对包进行转发的设备,数据是以包的形式进行传送的。

集线器:一种对包进行转发的设备,分为中式集线器和交换式集线器

IP地址:是一串32比特的数字,网络号+主机号

技术分享

通过解析器向DNS服务器发出查询(在编写浏览器等应用程序的时候,写上解析器的程序名称“gethostbyname”以及 Web 服务器的域名“www.lab.glasscom.com”就可以了,这样就完成了解析器的调用)—根据域名查询 IP 地址时,浏览器会使用 Socket 库中的解析器—解析器调用协议栈,协议栈执行发送信息的功能—然后通过网卡将信息发送给DNS服务器—DNS服务器返回响应信息—从响应信息中取出IP地址—放在内存里面—再返回给应用程序—

3、DNS服务器的工作

DNS查询信息包括:

 

(a) 域名 = www.lab.glasscom.com
(b) Class = IN
(c) 记录类型 = A

4、发送消息

(1)创建套接字(创建套接字阶段)
(2)将管道连接到服务器端的套接字上(连接阶段)
(3)收发数据(通信阶段)
(4)断开管道并删除套接字(断开阶段)

 

 

读书笔记1-网络的怎么连接的

标签:标识   请求   http   param   服务器端   资源   alt   存在   name   

原文地址:http://www.cnblogs.com/bell1991/p/7455851.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!