HTTP需要知道的事

一、从浏览器输入url到页面呈现都经历了哪些事?

大致过程:

  1. 客户端发起请求,创建端口
  2. 服务器在端口监听客户端请求
  3. 服务器向客户端返回状态和内容
  4. 浏览器渲染页面

 

详细的说,可真是做了不少事。

1.寻找url指向的IP地址

浏览器先自己找:搜索自身DNS缓存、操作系统DNS缓存、本地HOST文件。

如果没找到叫运营商去找:浏览器会发起一个DNS的系统调用,先宽带运营商自身缓存,后运营商服务器发起迭代DNS解析请求,即从顶级域名从后往前找。运营商把结果返回给操作系统,存入缓存,并给浏览器。

2.浏览器获得域名对应的IP地址后,发起TCP三次握手建立连接

第一次握手:主机A发送syn(建立连接码)=1和seq number(序列号) = seqA的数据包给主机B。

第二次握手:主机B收到A的联机请求,向A发送ack(确认码)=seqA+1,表示确认的是哪个数据包。同时向A发送syn=1,和自己的seq number=seqB的数据包。

第三次握手:主机A收到B的数据包,向B发送ack=seqB+1。此包发送完毕,双方都进入established状态,完成三次握手,建立连接。

3.建立连接后,浏览器向服务器发送HTTP请求,如用GET方法,请求一个域名,采用HTTP1.0协议。

4.服务器接到请求,经过处理把结果返回给浏览器。如果是页面就是HTML代码。

5.浏览器收到HTML代码,解析渲染页面:生成DOM树,渲染树。其中的JS、CSS、图片等静态资源也是一个个HTTP请求,都需要上面步骤。

 

二、HTTP协议的格式组成

分别请求和响应,都需要发送http头和正文信息

HTTP头:附加信息,如内容类型、服务器发送响应的日期、HTTP状态吗

正文:用户提交的表单数据

 

三、HTTP请求的方法

GET   向指定资源获取数据,长度限制2000byte,参数以?A=1&b=2的形式传输

POST 向指定资源提交数据,无长度限制

PUT  向指定资源更新舒克

DELETE 删除标识的指定资源

HEAD 向服务器发出指定资源的请求,类似GET,但服务器不传回所有资源

TRACE

OPTIONS

  ...

四、常见状态码

1XX:指示信息,请求已接收,继续处理

2XX:成功,请求已经成功

3XX:重定向,跳转到其他位置

4XX:客户端错误

5XX:服务器端错误

——

200:ok

400:客户端请求有语法错误

401:请求未授权

403:服务器接收请求但拒绝服务,没有权限

404:资源没有找到,url错了

500:服务区不可预期错误

503:服务器当前不能处理请求,过段时间可能恢复

 

本系列目前参考了Node.js官网,慕课网Scott的Node.js基础,《Node即学即用》图灵系列,以及可能的网上公开资源。

你可能感兴趣的:(HTTP需要知道的事)