IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> HTTP协议简介 -> 正文阅读

[网络协议]HTTP协议简介

1.HTTP:HyperText Transfer Protocol(超文本传输协议)

2.HTTP协议的格式,一般包括4项内容(Request和Response相似,此处以Reqeust为例):

1)Request Line

2)Request Header

3)Blank Line

4)Request Body

3. 分别介绍4项内容:以google 中输入http后,点击search后,查看network中信息为例说明。

1) Request Line(一般基础进行)

Request URL: https://www.google.com/search?q=http&rlz=1C1GCEV_enHK975HK975&oq=http&aqs=chrome..69i57j0i433i512j0i512l8.6507j0j15&sourceid=chrome&ie=UTF-8
Request Method: GET
Status Code: 200 OK
Remote Address: 10.142.4.67:8000
Referrer Policy: strict-origin-when-cross-origin

包含了URL,Method,StatusCode,Remote Address等。

2)Request Header(头部信息)

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, br
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Connection: keep-alive
Cookie: AEC=AakniGMsBJSztCrW1DFHaO36yiND2jgK1461JsRvVHHsDOYVgy-i415RxI0; SID=JghWCfZEq1juDO38oNqmjlt6RNlD_Aix7h34R7iSHIIY_YIfGq7DGKbriF-9ZlkvsOnotQ.; __Secure-1PSID=JghWCfZEq1juDO38oNqmjlt6RNlD_Aix7h34R7iSHIIY_YIfLc8_ZexCma2e1zmEhBklpg.; __Secure-3PSID=JghWCfZEq1juDO38oNqmjlt6RNlD_Aix7h34R7iSHIIY_YIfXIRTmKkeKBgCnJcDVnXbYA.; HSID=AtpRiJXb5GNpsxVCq; SSID=Ael8470hqtZDmWkst; APISID=-93LsFMI-7n7P1Tz/AowBmHZsVYMOU6zKx; SAPISID=F6Tdv96Vrf6BQ728/AKWGVeCzYjlZ1FING; __Secure-1PAPISID=F6Tdv96Vrf6BQ728/AKWGVeCzYjlZ1FING; __Secure-3PAPISID=F6Tdv96Vrf6BQ728/AKWGVeCzYjlZ1FING; 1P_JAR=2022-04-24-01; NID=511=jwMwMgs6I6iLH8x7Ay5cZSeWycnmmZ5ihbJcW5-tdIgmt8V55yDmqZLlJ1iDioimVO_Lmgsw-px-OjPHsWixJgLq9iJ1Qp0Vz-_rs_4tigJKm4HXtssmmHronpXQzfGeh7xdodFETH0tHBnrY6Mvga-3Rdnt1-Ejh_mslEB3xMhg35-2H5xYmKq4ufOTBzn3SVRKAPKVVMVyRgrHknYN6NeN3rQnREERX_xYyDM3b_30vX1RVh7zFVcNbpTUva4; SIDCC=AJi4QfFZJeKOUDyNAYa-nwFBK87B4tGLA_XxN3Jbs4_xczGcdt0tptCCKBhpuea30yowDPwDnw; __Secure-3PSIDCC=AJi4QfGv13nqDPLL5ssML3q1kbt_hkNZ47laVfgQpsIxvoF93dWcHQTPWw2WApBBY-Vr53BVR5M
Host: www.google.com
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36
X-Client-Data: CI+2yQEIo7bJAQjEtskBCKmdygEImozLAQiWocsBCJihywEI6/LLAQie+csBCOeEzAEIpY7MAQiZj8wBCJmhzAEIz6LMAQjeoswBCIGkzAEIsqTMAQiCp8wBGKupygE=
Decoded:
message ClientVariations {
  // Active client experiment variation IDs.
  repeated int32 variation_id = [3300111, 3300131, 3300164, 3313321, 3327514, 3330198, 3330200, 3340651, 3341470, 3342951, 3344165, 3344281, 3346585, 3346767, 3346782, 3346945, 3346994, 3347330];
  // Active client experiment variation IDs that trigger server-side behavior.
  repeated int32 trigger_variation_id = [3314859];
}

包含了Connection:keep-alive(长连接),cookie(身份信息),Accept-Lanaguage,user-Agent(用户的浏览器信息)等

3.Blank Line

一般只是空格和回车。主要功能是让reqeust header和request body区分开,让浏览器/服务器知道哪开始是header,哪开始是body。

4)Request Body

请求中的数据payload。例如,请求中有用户名id=abc和密码pw=123,则id=abc&pw=123被定义在此body中。

4.请求后,常用的返回的状态码

200:表示OK(请求和返回,都成功)

404:没有找到资源(即后台没有定义该请求的url,需要前端开发向后端开发确认url是否正确)

500:内部错误(请求被后台接收到了,但后台因某种原因,后台报错了)

note:实际项目开发时,根据项目需要,有时会自定义状态码,如自定义状态码20001,表示某种异常,并返回异常原因信息等。

5. HTTP一般流程
1)建立连接

  • DNS解析。需要将域名如www.baidu.com,解析为IP如10.142.5.135(提供给Socket建立连接用)
  • 建立Socket连接,Socket的建立需要IP地址和端口Port
  • 如果请求的URL没有指定端口号,那就用默认端口号port=80, 因为80为HTTP默认端口号

2)发送请求(Request)

主要使用Get,Post,Put等方法,由客户端浏览器,向服务器发送请求。

3)获得响应(Response)

获得响应数据,可能是文字,图片,语音,视频的数据

4)关闭连接

HTTP请求结束后要关闭连接,有助于其他用户请求,避免请求阻塞等

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 12:12:36  更:2022-04-26 12:13:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:48:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码