第1章:浏览器生成消息—探索浏览器内部

第一小节:生成HTTP请求消息

流程:浏览器解析用户输入的URL——生成发送给Web服务器的请求消息——DNS服务器查询Web服务器域名对应的IP地址——委托操作系统内部的协议栈向服务器发送消息

1. 浏览器如何解析URL?

  • 浏览器将URL的各个元素进行拆分再进行定位,例如:
    http://www.glasscom.com/dir/index.html
    http+ //+ Web服务器名+ /+目录名+ /+文件名

  • 省略文件名的情况:
    (1)URL是以“/”结尾,例如:http://www.glasscom.com/dir/,截至到目录名后,文件名被省略了,但是浏览器依然可以访问,是因为事先在服务器上设置好默认访问的文件名了,大多数情况是index.html或者default.html;
    (2)URL以“/”结尾,http://www.glasscom.com/,截至到服务器名后,目录名文件名都被省略了,该情况同(1),服务器默认访问文件设置为/index.html。
    (3)URL目录名也省略了。例如:http://www.glasscom.com,是由于服务器还可以设置默认访问文件。
    (4)http://www.glasscom.com/dir,由于末尾没有“/”,但是不可以将dir直接理解为文件名,这时,服务器就会自行判断是目录名还是文件名,只要存在这个·名称即可。

2. HTTP的主要方法

  • GET:获取URI指定的信息,指定什么就获取什么。
  • POST:从客户端向服务器发送数据,一般用于发送表单中填写的数据等情况。
  • HEAD:和GET基本相同,不过它只返回HTTP的消息头,并不返回数据的内容,用于获取文件最后更新时间等属性信息。
  • OPTIONS:用于通知或查询通信选项
  • PUT:替换URI指定服务器上的文件,如果URI指定的文件不存在,则创建该文件。
  • DELETE:删除URI指定服务器上的文件。
  • TRACE:将服务器收到的请求和头部信息直接返回给客户端,用于在使用代理的环境中检查改写请求的情况。
  • CONNET:用于代理传输加密消息时使用的方法。

3.生成HTTP请求

  • GET方法请求原理:客户端发起URL请求,Web服务器端接收到请求后,首先解析URL,获取URL所请求的文件内容,读取相应数据,将数据内容存储到响应信息,传给客户端。
  • POST方法请求原理:URI会指向Web服务器中运行的一个应用程序的文件名,并将用户在输入框填写的数据信息传递给服务器,当Web服务器收到信息后,会将请求消息中的数据发送给URI指定的应用程序,最后Web服务器从应用程序接收输出的结果,将数据存放到响应消息中,返回给客户端。

4.HTTP状态码概要

状态码含义
1xx告知请求处理的进度和情况
2xx成功(200)
3xx表示需要进一步操作(302重定向)
4xx客户端错误
5xx服务器错误
400发送请求有语法错误
401访问页面没有授权
403没有权限访问该页面
404路径错误,没有该页面
500服务器内部异常
504服务器请求超时,没有返回结果

5.TCP/IP的基本思路
由一些小的子网,通过路由器连接起来组成一个大的网络。发送者发送的消息首先经过子网中的集线器,转发到距离最近的路由器上,路由器会消息的目的地判断下一个路由器的位置,然后发送到下一个路由器,过程不断重复到达目的地。

6.域名和IP为何并用?
用域名:域名可以自己定义,好记,IP是固定的。
用IP:计算机需要,所占字符小,方便路由器传输,域名太长,长度还不固定,处理起来比较麻烦,效率低。
并用:好记,传输快,需要用DNS服务器来通过IP查询名称。

7.DNS是如何解析的?

  • 来自客户端查询消息有三种:域名、Class(用来识别网络信息,默认为IN,也只有IN)、记录类型(A为IP地址,MX为邮件地址)
  • 该DNS服务器上有保存过该域名等,这时,DNS会从域名和IP地址的对照表中对比相应记录,并返回IP地址给客户端。
  • 如果该DNS服务器没保存过此域名,这时,客户打端访问最近的一台服务器,根域向上查找,例如,要搜索www.test.qq.com的IP地址,首先,负责管理com的服务器找到管理qq的服务器,然后以此类推,顺藤摸瓜找到管理www的服务器,最后解析成功。

8.使用Socket库收发数据的操作?
(1)创建套接字(创建套接字阶段)
(2)将管道连接到服务器端的套接字上(连接阶段)
(3)收发数据(通信阶段)
(4)断开管道并删除套接字(断开连接)

以下为注意内容:
(1)网址不只是以http:、https:开头的,还有其他,类似ftp:(文件传输协议)、file:、mailto:(电子邮件地址)等,这些协议类型表示浏览器应当使用的访问方法。访问Web服务器时用http://,访问FTP服务器时用ftp://。URL中可能会包含用户名、密码服务器端口号等信息。URL的各种形式如下
eg:http://user:password@www.glasscom.com:80/dir/index.html
ftp://user:password@ftp.glasscom.com:80/dir/index.html
file://localhost/c:/path/file.zip
mailto:haimei.zhang@clouddeep.cn
news:comp.protocols.tcp-ip
(2)提交表单可以用get请求也可以用post请求,但是get方法只能够发送几百个字节,如果表单中数据超长,则必须使用post方法。
(3)尽管浏览器可以将URL解析并生成HTTP消息,但它本身并不具备将消息发送到网络的功能,需要委托操作系统来实现。(因为发送消息的功能对于所有应用程序都是通用的,这样比较合法)
(4)数据是以包的形式传递的。
(5)IP地址中的主机号部分为0(10.11.12.0),该地址表示的不是一台计算机而是整个子网;主机号部分为1(10.11.12.255),该地址表示对整个子网所有设备发包,即“广播”。
(6)xxx.xxx.xxx.xxx,每个xxx都是一个域,越往右域的级别越高。一台DNS服务器可以管理很多域,一个域只能在一台DNS服务器上。
(7)区分Socket、socket、套接字。Scoket表示库,socket表示程序组件的名称,套接字表示管道两端的接口。
(8)IP地址不是分配给每一台设备的,而是分配给设备中安装的网络硬件的。因此,如果一台设备有多个网络硬件,那就会有多个IP地址。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值