Web基础 HTTP协议

Web基础 HTTP协议

HTTP协议介绍

HTTP 全称: Hyper Text Transfer Protocol 中文名:超文本传输协议
包含有超连接(Link)和各类多媒体元素标记(Markup)的文本。这些超文本文件彼此连接,造成网状(Web),所以又被
称为网页(Web Page)。这些连接使用URL表示。最多见的超文本格式是超文本标记语言HTML。
html文件->包含各类各样的元素(URL连接)->造成WebPage简称web页面

什么是URL

URL 即统一资源定位符(Uniform Resource Locator),用来惟一地标识万维网中的某一个文档。
URL 由协议、主机和端口(默认为80)以及文件名三部分构成
URI 在 URL 中的文件部分,被称为 URI

http:// zuoye.driverzeng.com:8888 /pic/1_oldboy_lnmp.jpg
#http协议   主机              端口    文件

image

HTTP的工做原理

访问:http://zuoye.driverzeng.com:8888/pic/1_oldboy_lnmp.jpghtml

1.浏览器去请求DNS服务器

1)请求local DNS(本地DNS),zuoye.driverzeng.com 绑定的IP
2)请求223.5.5.5,13个根域 迭代查询.com .driverzeng.com zuoye.driverzeng.com
192.168.3.250

2.浏览器与192.168.3.250服务器的8888端口创建TCP连

3.三次握手:

1)浏览器向192.168.3.250发送SYN
2)192.168.3.250回复ACK给浏览器,同时发送SYN给浏览器
3)浏览器向服务器发送ACK确认创建链接

4.开始数据交流,浏览器使用 GET 方式请求 /pic/1_oldboy_lnmp.jpg

5.服务器在站点目录下/pic目里面找到 1_oldboy_lnmp.jpg 返回给浏览器

6.浏览器向服务器断开链接(四次挥手)

1)浏览器向服务器发送fin
2)服务器接收fin并返回ACK
3)服务器向浏览器发送fin(肯定数据是否传输完成)
4)浏览器向服务器发送ACK
5)浏览器进入time_wait状态

7.浏览器显示URL中的图片

HTTP数据包分析

请求头

GET /favicon.ico HTTP/1.1
Host: www.qqyewu.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/86.0.4240.198 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9

GET和HTTP之间有个空行:请求空行

响应信息

HTTP/1.1 200 OK
Content-Type: text/html
Content-Encoding: gzip
Last-Modified: Fri, 15 Nov 2013 21:51:25 GMT
Accept-Ranges: bytes
ETag: "80ac72d44ce2ce1:0"
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Tue, 13 Jul 2021 03:02:41 GMT
Content-Length: 1838

响应信息下面的空行:响应空行

响应主体

页面内容

开发者工具Network

## General:基本信息
# 请求的URL
Request URL: http://zuoye.driverzeng.com:8888/
# 请求方法是 GET
Request Method: GET
# 状态码:200
Status Code: 200 OK
# 远端的地址
Remote Address: 192.168.3.250:8888
# referer的策略
Referrer Policy: strict-origin-when-cross-origin

## Response Headers:响应头
# 响应大小
Accept-Ranges: bytes
# 长链接
Connection: Keep-Alive
# 响应的内容长度
Content-Length: 2633
# 响应内容的类型;字符集
Content-Type: text/html; charset=UTF-8
# 日期
Date: Tue, 13 Jul 2021 03:19:44 GMT
# 长链接的超时时间,最大范围
Keep-Alive: timeout=5, max=100
# 代码返回:记录上一次的修改时间
Last-Modified: Fri, 04 May 2018 08:13:44 GMT
# 该网页部署在服务器的系统版本,以及服务版本
Server: Apache/2.4.6 (CentOS) PHP/5.4.16

## Request Headers:请求头
# 容许服务端给浏览器传递哪些文本类型
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng
,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
# 压缩
Accept-Encoding: gzip, deflate
# 语言
Accept-Language: zh-CN,zh;q=0.9
# 没有设置缓存
Cache-Control: no-cache
# 长链接
Connection: keep-alive
# 请求的主机(域名)
Host: zuoye.driverzeng.com:8888
# 请求参数(没有缓存)
Pragma: no-cache
# 谷歌浏览器自带
Upgrade-Insecure-Requests: 1
# 客户端的信息
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X)
AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1

HTTP的请求方法

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

HTTP的响应方法

HTTP的响应方法

状态码 含义
200 成功
301 永久重定向(跳转)
302 临时重定向(跳转)
304 本地缓存
307 内部重定向(跳转)
400 客户端错误
401 认证失败
403 找不到主页,权限不足
404 找不到页面
500 内部错误
502 找不到后端主机
503 服务器过载
504 后端主机超时
server {
listen 80;
root /var/www/html;
server_name localhost;
location / {
autoindex on;
}
location /aaaa {
aasdasda;
}
}

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主机是: www.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相关术语

LAMP:Linux Apache Mysql PHP
LNMP:Linux Nginx Mysql PHP
LAMT:Linux Apache Mysql Tomcat
LNMT:Linux Nginx Mysql Tomcat
PV:页面独立的浏览量
UV:独立设备
IP:独立IP
SOA松耦合架构

img

相关文章
相关标签/搜索