C++/java网络常见题目2_一次完整的HTTP请求过程

一次完整的HTTP请求过程


  1. 域名解析
  2. 发起TCP的3次握手
  3. 建立TCP连接后发起http请求
  4. 服务器响应http请求,浏览器得到html代码
  5. 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)
  6. 浏览器对页面进行渲染呈现给用户

域名解析

  • 将域名解析成ip的过程,通过ip找到网站服务器
  1. 浏览器会首先查询浏览器的缓存(这个缓存存活时间可能只有1分钟)
  2. 没有,查询本地的dns缓存
  3. 没有,查询本地的hosts文件
  4. 没有,查询local dns(网卡配置信息里的dns服务器)它的缓存
  5. 没有,访问根域名服务器返回下一级(顶级域名服务器)ip,访问顶级域名服务器返回下一级(一级域名服务器)ip......,直至找到想要寻找的域名所对应ip。
  6. 把该ip发送给客户端,并记录在缓存中。

发起TCP的3次握手

http请求与响应

http请求报文

  • 请求行
  1. 请求方法:主要有GET、HEAD、POST、PUT、DELETE、MOVE
  2. url:统一资源定位符,通过这个能在服务器上找到唯一的网页资源。
  3. 协议版本:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1
  • 请求头部
  1. 媒体类型:主要有文本文件,图片文件,视频文件
  2. 语言类型
  3. 支持压缩
  4. 客户端类型
  5. 主机名
  • 空行
  1. 代表请求头部的结束,也代表着请求主体的开始
  • 请求主体
  1. 只有使用POST提交表单的时候才有
POST  /index.php HTTP/1.1    请求行
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2  请求头
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://localhost/
Content-Length:25
Content-Type:application/x-www-form-urlencoded
  空行
username=aa&password=1234  请求数据

http响应报文

  • 响应行
  1. 协议版本:与请求报文一致
  2. 状态码:
  3. 状态码描述:
  4. 状态码 说明
    200

    代表ok

    301 永久跳转
    403 没权限
    404 没有这个文件
    500 未知的错误
    502 网关错误
    503 服务器超载,停机维护
    504 网关超时
  • 响应头部
  1. 与请求头部相类似
  • 空行
  • 响应报文主体
HTTP/1.1 200 OK  响应行
Date: Sun, 17 Mar 2013 08:12:54 GMT  响应头部
Server: Apache/2.2.8 (Win32) PHP/5.2.5
X-Powered-By: PHP/5.2.5
Set-Cookie: PHPSESSID=c0huq7pdkmm5gg6osoe3mgjmm3; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 4393
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
空行

<html>  响应数据
<head>
<title>HTTP响应示例<title>
</head>
<body>
Hello HTTP!
</body>
</html>

本系列文章目的为个人准备面试的简单总结,文中多有不足,敬请批评指正!

参考:

https://blog.csdn.net/qq_30758629/article/details/80855495

https://blog.csdn.net/yonggeit/article/details/72857630

https://blog.csdn.net/yezitoo/article/details/78193794

猜你喜欢

转载自blog.csdn.net/zzhang_12/article/details/81296761
今日推荐