美文网首页
操作系统003 HTTP请求和相应

操作系统003 HTTP请求和相应

作者: 攻城狮托马斯 | 来源:发表于2020-02-26 20:44 被阅读0次

第一步:域名解析

第二步:建立TCP连接

第三步:发起HTTP请求

第四步:服务器响应HTTP请求,浏览器得到html代码

第五步:浏览器解析html代码,渲染网站

域名解析


1.浏览器会先在自身DNS域名缓存中寻找url

2.如果没有,就会找Window系统自身的DNS缓存

3.再没有, 系统会检查本地hosts是否存在域名映射(Host文件在C盘中,用来保存常用网站对应的IP地址)

4.还是没有,浏览器就会发起DNS系统调用,像本地运营商发起域名解析请求,找到域名注册商提供的DNS地址。

一般如上步骤走过后, 就能找到域名所对应的IP地址并就行链接。

(DNS是域名系统协议, 用于域名和IP地址的相互转换)

建立TCP连接


TCP协议是一个有保障的协议,会进行三次挥手。

第一次挥手:Client将发送一个SYN包和随机序列号A,  进入SYN_SENT 状态

第二次挥手: 服务端收到后,会回复SYN-ACK包,以及一个A+1用来确认, 同时发送一个随机序列号B

第三次挥手: 客户端收到后会再发一个ACK包以及A + 1, B + 1给服务端

为什么需要三次挥手:

假设是两次挥手的情况:

A发送 "我想跟你讲话 ", 结果这条信息因为某些原因被滞留了, 过了一天才到达B, 这时候B回复 "好的, 开始建立链接 ”,可是由于A只想在一天前跟B讲话,就算B建立了链接, A也不会发数据了。这样,作为B,服务器端就白白浪费了很多资源。

因此,第三次挥手确保了这一信息的即时性,B浪费资源建立连接白白等待A

四次分手

为什么要四次分手

TCP协议是一种可靠的运输协议,是全双工模式,双方必须都确定不再发送,不再接受数据。第一次挥手的时候, A 告诉 B, 不再给他发消息了,B说知道了,但A还是能接受B的消息, B关闭了接受A的消息。然后B告诉A,我不再给你发消息了,A说知道了,于是乎,B不再给A发消息了,A关闭了接受B的消息。

发送http请求


HTTP的特点是,无连接无状态,每次只处理一个请求。

通常用的三种请求方法是:

GET: 请求获取Request-URl中标识的资源

POST: 新创建资源,在Request-URI后附加新的数据

PUT: 更新资源, 后面更新资源的地址。

DELETE: 请求服务器删除Request-URI所标识资源

这里,不得不提到RESTful API了,即Representational State Transfer.

Representation 是表现,会把一种资源,或者一种请求,表现出来

State Transfer 则指的是服务器端的状态转化。

所以可以理解为:通过单一的URl,单一的请求,让服务器的一种状态发生转化。

通常,representation代表的是名词,所以RESTful URI中不应该有动词。

用RESTful的好处:

每个URI都是单独的一次请求操作,没有说URI中有多种操作。

作为服务端来讲, 不需要解析URI(如果其中包含多个操作), 并且服务器可以无状态运行,可伸展性强。

服务器响应HTTP请求


接下来用Java的Spring框架为例子, 走一遍服务器响应HTTP请求。

首先, Spring框架中的filter会过滤掉一些恶意的URI, 详情可以看

XSS 网页攻击

https://www.jianshu.com/p/05aa942718ea

接着, 根据MVC的思想,每一个controller对一个域名, spring会根据URL mapping从controller中调用GET,POST,DELETE,PUT的函数。

然后这一函数又会向下走,调用service层,接着service层调用DAO层的函数,进行数据的获取或者存放。

最后,controller中的函数会返回一个结果,首先通过view resolver把jsp file和数据整合,生成html 返还给浏览器,然后浏览器进行渲染。

浏览器获取html代码,渲染网站


相关文章

  • 操作系统003 HTTP请求和相应

    第一步:域名解析 第二步:建立TCP连接 第三步:发起HTTP请求 第四步:服务器响应HTTP请求,浏览器得到ht...

  • 一次完整的HTTP请求与响应涉及哪些知识?

    本文以HTTP请求和响应的过程来讲解涉及到的相关知识点。 第一 HTTP请求和相应步骤 图片来自:理解Http请求...

  • 读<了不起的Node.js>-10.HTTP

    HTTP 超文本传输协议,是一种web协议,是属于TCP上层的协议 HTTP结构 HTTP协议构建在请求和相应的概...

  • MySQL下载步骤

    对于不同的操作系统,MySQL[http://c.biancheng.net/mysql/] 提供了相应的版本。在...

  • HTTP协议相关

    HTTP超文本传输协议 HTTP的请求方式有哪些?GET请求和POST请求的区别?HTTP请求的特点 HTTP的请...

  • HTTP 使用Cookie 的状态管理

    一. HTTP无状态协议 HTTP 是无状态的协议,就是不对之前发生过的请求和相应进行管理,也就无法根据之前的状态...

  • 说说如何安装与运行 Node.js

    1 下载 在官网下载相应对应操作系统的安装程序,下载地址请点击。 2 安装 这里以 windows 操作系统为例,...

  • 简单的HTTP协议

    http用于客户端和服务器端之间的通信 通过请求和相应的交换达成通信 http是不保存状态的协议也就说在http这...

  • HTTP简介

    HTTP的作用就是指导浏览器和服务器进行沟通,主要包括请求和相应两个方面。 HTTP 请求 浏览器必须按照HTTP...

  • [iOS-Foundation] Networking Requ

    对于在网络活动中的请求和响应,尤其是 HTTP 协议,Foundation 框架提供了相应的类来封装这些信息。UR...

网友评论

      本文标题:操作系统003 HTTP请求和相应

      本文链接:https://www.haomeiwen.com/subject/owjxchtx.html