首页 > Web开发 > 详细

http网页访问原理及如何看懂状态码

时间:2020-05-13 21:26:44      阅读:93      评论:0      收藏:0      [点我收藏+]

http协议

http协议介绍

# 什么叫做http
HTTP 全称:Hyper Text Transfer Protocol 中文名:超文本传输协议

# http之 [超文本传输协议]
是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。
怎讲?可以这么理解:通过一个超链接,打开一个文本,当我们打开浏览器访问百度:https://www.baidu.com,浏览器在帮你,去百度的服务器上下载一个文本(index.html)

# 什么是URL
统一资源定位符(唯一标识)

# URL组成部分
http://www.biadu.com:90/epel/1.txt

协议:					http://
主机:端口			   www.biadu.com:90
文件名和路径			  服务器站点目录下的,目录和文件

http工作原理

1.用输入域名 - > 浏览器跳转 - > 浏览器缓存 - > Hosts文件 - > DNS解析(递归查询|迭代查询)
    客户端向服务端发起查询 - > 递归查询
    服务端向服务端发起查询 - > 迭代查询
2.由浏览器向服务器发起TCP连接(三次握手)
    客户端     -->请求包连接 -syn=1 seq=x           服务端
    服务端     -->响应客户端syn=1 ack=x+1 seq=y     客户端
    客户端     -->建立连接 ack=y+1 seq=x+1          服务端
3.客户端发起http请求:
    1)请求的方法是什么:     GET获取
    2)请求的Host主机是:     blog.driverzeng.com
    3)请求的资源是什么:     /index.html
    4)请求的端端口是什么:    默认http是80 https是443
    5)请求携带的参数是什么:   属性(请求类型、压缩、认证、浏览器信息、等等)
    6)请求最后的空行
4.服务端响应的内容是
    1)服务端响应使用WEB服务软件
    2)服务端响应请求文件类型
    3)服务端响应请求的文件是否进行压缩
    4)服务端响应请求的主机是否进行长连接
5.客户端向服务端发起TCP断开(四次挥手)
    客户端     --> 断开请求 fin=1 seq=x          -->    服务端
    服务端     --> 响应断开 fin=1 ack=x+1 seq=y  -->    客户端
    服务端     --> 断开连接 fin=1 ack=x+1 seq=z  -->    客户端
    客户端     --> 确认断开 fin=1 ack=x+1 seq=sj -->    服务端
  • 原理图

技术分享图片

http请求方法

方法(Method) 含义
GET 请求读取一个Web页面(下载一个页面)
POST 附加一个命名资(如Web页面)(上传)
DELETE 删除Web页面
CONNECT 用于代理服务器
HEAD 请求读取一个Web页面的头部
PUT 请求存储一个Web页面
TRACE 用于测试,要求服务器送回收到的请求
OPTION 查询特定选项

http状态码

  • 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。
  • 2xx和3xx都是网页可以正常访问
  • 4xx:Nginx的报错(出错,出在nginx上)去检查nginx服务,或者服务器权限等...
  • 5xx:后端报错(nginx后面连接的服务报错:mysql、php、tomcat、redis.......,如果不是前面的原因:你们的代码有问题,滚回去重写)

详细状态码请参考网页TP

状态码 含义
200 成功
301 永久重定向(跳转)
302 临时重定向(跳转)
304 本地缓存(浏览器的缓存)
307 内部重定向(跳转)
400 客户端错误
401 认证失败
403 找不到主页,权限不足
404 找不到页面
405 请求方法不被允许
500 内部错误(MySQL关闭等...)
502 bad gateway 坏了的网关(php tomcat 等服务关闭)
503 服务端请求限制
504 请求超时

http头部信息

  • Referer重点说明:浏览器向 WEB 服务器表明自己是从哪个 网页/URL 获得/点击 当前请求中的网址/URL,如当前处于百度搜索界面访问简书,那简书服务器得知的请求报文则包含一则地址为www.baidu.com的Referer信息

技术分享图片

网站分析

网站数据包分析

技术分享图片

网站数据包详解

# 基本信息
请求网址:https://www.driverzeng.com/
请求方法:GET
远程地址:39.104.203.184:443
状态码:
200
版本:HTTP/1.1


Request URL: http://www.biadu.com/
Request Method: GET
Status Code: 200 OK
Remote Address: 10.0.0.7:80
Referrer Policy: no-referrer-when-downgrade



# 请求头部
## 请求的资源类型
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/\*=0.8,application/signed-exchange;v=b3
## 资源类型压缩
Accept-Encoding: gzip, deflate
## 资源类型的语言
Accept-Language: zh-CN,zh;q=0.9
## 缓存控制:服务端没有开启缓存
Cache-Control: no-cache
## 长连接
Connection: keep-alive
## 访问的主机:www.biadu.com
Host: www.biadu.com
##  项目缓存:没有开启
Pragma: no-cache
## 客户端优先加密
Upgrade-Insecure-Requests: 1
## 用户访问网站的客户端工具
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36


# 响应头部
Connection: keep-alive						# 建立长连接
Content-Type: text/html;charset=utf-8	      # 解析方式和字符集
Date: Wed, 13 May 2020 02:29:35 GMT			 # 日期
server:Nginx/1.14.1					        # 该网站服务器,使用的软件和版本号
status: 200							   	   # 状态码

状态码分析

技术分享图片
技术分享图片

http网页访问原理及如何看懂状态码

原文:https://www.cnblogs.com/tcy1/p/12884832.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!