HTTP相关知识总结
使用场景流程
http客户端发起请求,创建端口
http服务器在端口监听客户端请求
http服务器向客户端返回状态和内容
更详细:
1.Chrome搜索自身的DNS缓存
2.搜索操作系统自身的DNS缓存(浏览器没有找到缓存或者缓存已经失效)
3.读取本地的host文件
4.浏览器发起一个DNS的一个系统调用(向本地DNS服务器发送域名解析请求)
a.宽带运营商服务器查看本身缓存
b.运营商服务器发起一个迭代DNS解析请求
c.运营商服务器把结果返回操作系统内核同时缓存起来
d.操作系统内核把结果返回浏览器
5.浏览器获得域名对应的IP地址后,发起http三次握手
a.浏览器会以一个随机的端口向服务器的web程序发起tcp连接请求
b.tcp连接请求经过层层路由到达服务器端,经历网卡然后到达操作系统内核的tcp/ip协议栈,然后达 到web服务端,然后建立起tcp/ip连接(三次握手,客户端-》服务端,客户端《-服务端,客户端-》服务端)
6.tcp/ip连接建立起来后,浏览器就可以向服务器发送http请求了,使用了比如说,用http的get方法请求一个根域里的一个域名,协议可以采用http 1.0的一个协议
7.服务器端接收到了这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器,比如慕课网会返回html页面代码
8.浏览器拿到了慕课网的完整的html页面代码,在解析和渲染这个页面的时候,里面的js,css,图片静态资源,他们同样是一个个http请求,都需要经过上面的主要的七个步骤
9.浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给了用户
http请求和响应都会发送http头和正文信息
http头发送的是一些附加信息:内容类型,服务器发送响应的日期,http状态码等
正文就是用户提交的表单数据或者是返回的数据
请求方法:用不同的方式来操作指定的资源
GET 用作获取,读取数据
POST 向指定的资源提交数据
PUT 更新
DELETE 删除标识的某个资源
HEAD 发出获取资源的请求,但是服务器不返回主体内容,用来获取元数据
TRACE
OPTIONS
状态码:服务器端告知浏览器请求成功或失败的状态
1xx 请求已经接收,进行后续处理
2xx 请求成功处理
3xx 重定向
4xx 客户端错误
400 客户端请求有语法错误
401 请求没有授权
403 服务器拒绝提供服务
404 请求资源部存在
5xx 服务器端错误
500 服务器端发生不可预期错误
503 服务器当前不能处理这个请求