完整的HTTP请求

1.域名解析
首先,客户端发出DNS请求翻译IP地址或主机名。DNS服务器在收到客户机的请求后:
(1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;
(2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息;
(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。
(4)若没有找到,则返回错误信息。

2.发起TCP的3次握手
这里写图片描述
(1)源主机A向目的主机发送一个同步标志SYN和初始序列号ISNA,发出会话请求,告诉计算机:“我要和你建立连接”。
(2)目的主机收到请求后,通过回应具有以下项目的数据段表示回复:同步标志SYN、应答标志ACK、初始序列号ISNB。使用这个应答,本质是说:“计算机A,我确认你的会话建立请求和初始序列号ISNA。我将使用初始序列号ISNB与你同步。”
(3)源主机A收到应答后,再回送应答标志ACK和初始序列号ISNB,确认三次握手完成。TCP通过三次握手在源主机和目的主机之间建立起虚电路连接。
http://blog.csdn.net/qq_24421591/article/details/50856423

3.建立TCP连接后发起http请求
常见的: get与post请求的区别?
- 区别一:get重点在从服务器上获取资源,post重点在想服务器发送数据;
- 区别二:get传输数据是通过URL请求,以filed(字段)=value的形式,置于URL后,并用”?”连接,多个请求数据之间用”&”连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的.
- 区别三:get传输量小,因为受URL长度限制,但效率较低post可以传输大量数据,所以上传文件时只能用post方式.
- 区别四:get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等post较get安全.

4.服务器响应http请求,浏览器得到html代码

5.浏览器解析html中的代码,并请求html代码中的资源
因为html可以隐式添加标记的特性,无法被寻常解析器解析.所以html文件需要DOCTYPE声明,才能正确的被浏览器解析.如果不存在或声明错误,会使网页呈现向后兼容模式,回到浏览器大战时的混乱场面(每个浏览器有自己的解析模式).

6.浏览器对页面渲染呈现给用户

扩展:
HTTP本身是一个无状态的连接协议(指协议对于事务处理没有记忆能力),为了支持客户端与服务器之间的交互,我们就需要通过不同的技术为交互存储状态,而这些不同的技术就是Cookie和Session了。

一个完整HTTP请求包括以下几个部分: 1. 起始行:起始行包括请求方法、请求的URL和使用的协议版本。例如,GET /index.html HTTP/1.1。 2. 头部信息:头部信息包括一系列的键值对,用来传递请求的附加信息。常见的头部信息包括User-Agent(用户代理,用于标识浏览器或客户端)、Host(请求的主机名)、Content-Type(请求体的类型)等。 3. 空行:空行用于分隔头部信息和请求体。 4. 请求体:请求体包含了请求的具体内容,例如表单数据或上传的文件。 综上所述,一个完整HTTP请求的格式为: 起始行 头部信息 空行 请求体 引用\[1\] #### 引用[.reference_title] - *1* *3* [一完整的HTTP事务是怎样的过程](https://blog.csdn.net/wang35235966/article/details/77863455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [一次完整http请求过程](https://blog.csdn.net/weixin_48520816/article/details/125406258)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值