Linux下的网络编程——B/S模型HTTP(四)
前言:
HTTP是基于B/S架构进行通信的,而HTTP的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器,例如Firefox、Internet Explorer、Google Chrome、Safari、Opera等,此外,客户端的命令行工具还有elink、curl等。Web服务是基于TCP的,因此为了能够随时响应客户端的请求,Web服务器需要监听在80/TCP端口。这样客户端浏览器和Web服务器之间就可以通过HTTP进行通信了。
目录
HTTP协议基础:
1.请求消息:
2.响应消息
3.请求方法:
(1)GET
(2)POST
4.状态码:
4.GET与POST的区别:
5.默认端口号:
HTTP协议基础:
HTTP,超文本传输协议( HyperText Transfer Protocol )。互联网应用最为广泛的一种网络应用层协议。它可以减少网络传输,使浏览器更加高效。
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。
1.请求消息:
请求消息:请求行 请求头 空行 请求体
浏览器—>发给—>服务器。主旨内容包含4部分:
请求行:说明请求类型,要访问的资源,以及使用的http版本
请求头:说明服务器要使用的附加信息,
空行:必须!,即使没有请求数据·
请求数据:也叫主体,可以添加任意的R他数据。
1. GET /hello.c Http1.1\r\n
2. Host: localhost:2222\r\n
3. User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/201001 01 Firefox/24.0\r\n
4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n
5. Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3\r\n
6. Accept-Encoding: gzip, deflate\r\n
7. Connection: keep-alive\r\n
8. If-Modified-Since: Fri, 18 Jul 2014 08:36:36 GMT\r\n
【空行】\r\n
2.响应消息
响应消息:状态行 消息报头 空行 响应正文
服务器—>发给―>浏览器。主旨内容包含4部分:
状态行:包括http协议版本号,状态码,状态信息
消息报头:说明客户端要使用的一些附加信息
空行:必须
响应正文:服务器返回给客户端的文本信息
3.请求方法:
(1)GET
请求指定的页面信息,并返回实体主体。
(2)POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
1. Http1.1 200 OK
2. Server: xhttpd
Content-Type:text/plain; charset=iso-8859-1
3. Date: Fri, 18 Jul 2014 14:34:26 GMT
5. Content-Length: 32 ( 要么不写 或者 传-1, 要写务必精确 ! )
6. Content-Language: zh-CN
7. Last-Modified: Fri, 18 Jul 2014 08:36:36 GMT
8. Connection: close
\r\n
[数据起始。。。。。
。。。。
。。。数据终止]
4.状态码:
200:正确返回
401:用户权限不足
404:请求的资源不存在
500:服务端出错
300系列:重定向
4.GET与POST的区别:
在本质上两者都是通过tcp进行通信传输的顶层协议,但是
GET请求参数在请求行中,在url后,POST请求参数在请求体中
GET请求的url长度有限制,POST没有
5.默认端口号:
http默认端口号:80,https默认端口号443,ftp默认端口号21
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
Linux下的网络编程——B/S模型HTTP(四)
前言: HTTP是基于B/S架构进行通信的,而HTTP的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器,例如Firefox、Internet Explorer、Google Chrome、Safari、Opera等,此外,客户端的命令…...
![](https://img-blog.csdnimg.cn/205b782db9254a2292f3307a16d1dd84.png)
Go语言入门篇
目录 一、基础数据类型 1.1 变量的定义方式 1.2 用%T输出变量的类型 二、复合数据类型 2.1 数组 2.1.2、数组的遍历 2.1.3 数组传参 2.2. 切片slice 2.2.1. 初始化切片 2.2.2. append向切片中追加元素 2.2.3. 切片的截取 2.3. map 2.3.1. map初始化 2.3.2. 添加和…...
![](https://img-blog.csdnimg.cn/49ed4c4348a34ff6a43a8eeb3b0c3162.png)
基于springboot+vue的青年公寓服务平台
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring-ImportSelector接口功能介绍
ImportSelector接口是至spring中导入内部类或者外部类的核心接口,只需要其定义的方法内返回需要创建bean的class字符串就好了,比如:当我们引入一个外部share包,我们拿到里面的Class返回出去,就能得到这个bean,是多么神…...
![](https://img-blog.csdnimg.cn/53b7c293b2f94eb293caae3b0317ce6e.png)
YOLOv5如何训练自己的数据集
文章目录 前言1、数据标注说明2、定义自己模型文件3、训练模型4、参考文献 前言 本文主要介绍如何利用YOLOv5训练自己的数据集 1、数据标注说明 以生活垃圾数据集为例子 生活垃圾数据集(YOLO版)点击这里直接下载本文生活垃圾数据集 生活垃圾数据集组成&…...
![](https://img-blog.csdnimg.cn/3b3e03b17a1c481ca3478f97aff593e1.png)
李航老师《统计学习方法》第1章阅读笔记
1.1 统计学习 统计学习的特点 统计学习:计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析 现在人们提及机器学习时,往往指统计机器学习,所以可以认为本书介绍的是机器学习方法 统计学习的对象 统计学习研究的对象是数据(data)…...
![](https://img-blog.csdnimg.cn/img_convert/5b51d24960a4533a68f4ed38059b1ca1.png)
基于微信小程序的背单词学习激励系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言用户微信端的主要功能有:管理员的主要功能有:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉…...
![](https://img-blog.csdnimg.cn/d79ca58777464d128bfeb5f1f11320e1.png)
VScode调试复杂C/C++项目
以前都是用的VScode调试c/cpp的单个文件的编译和执行, 但是一遇到大型项目一般就用gdb了, gdb的调试效率和VScode差距还是比较大的, 但最近发现VScode其实也能调试复杂的cpp项目, 所以记录一下. 首先明确一下几点: 首先cpp文件需要经过编译, 生成可执行文件, 然后通过运行/调…...
![](https://img-blog.csdnimg.cn/img_convert/a08571f736dc04b5bef51cd09e8e3a0a.gif#pic_center)
【Hash表】字母异位词分组-力扣 49 题
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…...
![](https://img-blog.csdnimg.cn/631ca6ecb5214151a9843065aaa4669c.png)
展示日志log4.properties
log4.properties 1.log4.properties 此时文件主要用于展示日志的输出的级别的信息。 # Set root category priority to INFO and its only appender to CONSOLE. #log4j.rootCategoryINFO, CONSOLE debug info warn error fatal log4j.rootCategoryinfo, CONSO…...
![](https://img-blog.csdnimg.cn/581de8804ad843ce8f9a4cff02c9225a.png)
基于PLE结合卡尔曼滤波的RSSI定位算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ............................................................... for Num_xb Num_xb2Num_…...
![](https://www.ngui.cc/images/no-images.jpg)
uniapp项目实践总结(十九)版本更新和热更新实现方法
导语:当一个 APP 应用开发完成以后,就要上架应用商店,但有时候修改一些小问题或者推出一些活动,又不想频繁地提交应用商店审核,那么就可以使用应用内更新功能来进行应用的版本升级更新或热更新,下面就介绍一下实现的方法。 目录 准备工作原理分析实战演练案例展示准备工作…...
一起学数据结构(8)——二叉树中堆的代码实现
在上篇文章中提到,提到了二叉树中一种特殊的结构——完全二叉树。对于完全二叉树,在存储时,适合使用顺序存储。对于非完全二叉树,适合用链式存储。本文将给出完全二叉树的顺序结构以及相关的代码实现: 1. 二叉树的结构…...
![](https://img-blog.csdnimg.cn/dc40b1fe379a454899b5b64093898e50.png)
Linux环境变量配置说明(配置jdk为例-摘录自尚硅谷技术文档)
配置环境变量的不同方法 Linux的环境变量可在多个文件中配置,如/etc/profile,/etc/profile.d/.sh,~/.bashrc,~/.bash_profile等,下面说明上述几个文件之间的关系和区别。 bash的运行模式可分为login shell和non-login shell。 例…...
![](https://www.ngui.cc/images/no-images.jpg)
idea常用插件笔记
文章目录 Free Mybatis Toollombok插件idea插件导出导入 idea提供了很多好用的插件,之前都装了的,但是换了下电脑,什么都没了,所以记录下方便以后用。 Free Mybatis Tool mybatis跳转插件,再也不用费力的找xml了。 l…...
![](https://img-blog.csdnimg.cn/5a45a112f0f1444ca73ee630d5a35c6b.png)
搜索二叉树【C++】
文章目录 二叉搜索树二叉搜索树的模拟实现构造函数拷贝构造函数赋值运算符重载函数析构函数Insert循环递归 Erase循环递归 Find循环递归 二叉搜索树的应用K模型KV模型 完整代码普通版本递归版本 二叉搜索树 二叉搜索树又称为二叉排序树,它或者是一棵空树࿰…...
![](https://img-blog.csdnimg.cn/1a2e7fdef7c649888b228e33afd85e9d.png)
华为云云耀云服务器L实例评测|认识redis未授权访问漏洞 漏洞的部分复现 设置连接密码 redis其他命令学习
前言 最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到过MySQL数据库被攻击的情况,数据丢失,还好我有几份备份,没有造成太大的损失。昨天收到华为云的邮箱提醒,我的redis数据库没有设置密码&…...
![](https://www.ngui.cc/images/no-images.jpg)
快速安装NGINX
快速安装NGINX #安装依赖包 yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel#下载NGINX curl -O https://nginx.org/download/nginx-1.21.6.tar.gz#解压NGINX tar -zxvf nginx-1.21.6.tar.gz cd nginx-1.21.6.tar.gz#配置 ./configure --prefix/…...
![](https://img-blog.csdnimg.cn/4db15db5d346489daf2288ca52485564.png)
一台电脑远程内网的另外一台电脑,禁止远程的电脑连接外网,只允许内网连接
一台电脑远程内网的另外一台电脑,禁止远程的电脑连接外网,只允许内网连接 1.找到右下角网卡图标,右键图标选择“打开网络和共享中心”。 3、点击“更改适配器设置”。 4、右键正在使用的网卡“本地连接”打开属性 5、找到“internet协…...
![](https://img-blog.csdnimg.cn/img_convert/a4fb88330426065945d4ee5a5cbca804.png)
山西电力市场日前价格预测【2023-09-24】
日前价格预测 预测说明: 如上图所示,预测明日(2023-09-24)山西电力市场全天平均日前电价为496.09元/MWh。其中,最高日前电价为705.54元/MWh,预计出现在14: 30。最低日前电价为333.70元/MWh,预计…...
![](https://www.ngui.cc/images/no-images.jpg)
MQ---第二篇
系列文章目录 文章目录 系列文章目录一、RabbitMQ事务消息二、RabbitMQ死信队列、延时队列一、RabbitMQ事务消息 通过对信道的设置实现 channel.txSelect();通知服务器开启事务模式;服务端会返回Tx.Select-Okchannel.basicPublish;发送消息,可以是多条,可以是消费消息提交…...
![](https://www.ngui.cc/images/no-images.jpg)
C++ 创建文件并写入内容
文章目录 1.问题2.filesystem3.示例参考文献 1.问题 C 如何向指定路径的文件写入内容呢? 这里有几点要求: 如果目录不存在需要自动创建。如果文件不存在需要自动创建。以覆盖的方式写入内容。 2.filesystem C17 带来了一个新的库:filesy…...
![](https://www.ngui.cc/images/no-images.jpg)
微信小程序rich-text里面写多行溢出显示省略号在ios中不显示的问题
问题:微信小程序rich-text里面写多行溢出显示省略号在ios中不显示的问题 解决方法:需要给一个默认的div标签,在div写行内样式 overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-o…...
![](https://img-blog.csdnimg.cn/c0723bfb0c1a41f5964bddc22f4c3c13.png)
解决Win11/10中Edge浏览器页面加载不出来、打不开问题|有网但是打不开,加载不了
问题症状 edge浏览器打不开,有网络能正常上网,但是edge浏览器无法浏览。网络质量很高,但是页面就是加载不出来,详情如下: (我是在科学上网后造成这样子的原因,现在将我的方法分享一下ÿ…...
![](https://img-blog.csdnimg.cn/e5aa2f157a5740b9b89306b142f635e0.png)
【DRAM存储器五】DRAM存储器的架构演进-part2
👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 参考书籍:《Memory Systems - Cache, DRAM, Disk》 目录 以提升吞吐…...
![](https://img-blog.csdnimg.cn/3df4cef547fc4a70ba0261d7ff2ece21.png)
分享一个基于uniapp+springboot技术开发的校园失物招领小程序(源码、lw、调试)
💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…...
![](https://img-blog.csdnimg.cn/f4aa8617525e4ec68d97c57d4ae5f99b.png)
RabbitMQ工作模式——Routing路由模式
1.Routing路由模式 Routing生产者代码 public class Producer_Routing {public static void main(String[] args) throws IOException, TimeoutException {//1.创建连接工厂ConnectionFactory factory new ConnectionFactory();//2.设置参数factory.setHost("172.16.98.…...
![](https://img-blog.csdnimg.cn/86fe4e518a07474ca672a05ee9beac53.gif)
Python字典的增删改查以及嵌套
嗨喽,大家好呀~这里是爱看美女的茜茜呐 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可 字典 基础数…...
![](https://www.ngui.cc/images/no-images.jpg)
【淘宝开店】新手入门开网店教程
一、上架产品流程顺序 1. 上架10个产品2. 早中晚各上架1件产品3. 连续上架4天 二、产品培训 动销率要求: 店铺产品数必须>10公式: 店铺最近30天有销量产品数 / 店铺上架总产品数 * 100%1. 从动销率可以得出, 店铺产品不宜过多2. 小卖家前期最佳建议产品数10个 三、上架产品…...
![](https://www.ngui.cc/images/no-images.jpg)
计网第五章(运输层)(五)(TCP拥塞控制)
目录 一、基本概念 二、拥塞控制算法 慢开始: 拥塞避免: 快重传: 快恢复: 一、基本概念 若对网络中某一资源的需求超过了该资源所能提供的可用部分(供不应求),网络性能就会变坏。 在计算…...
wordpress获取url/上海牛巨微seo优化
1.安装indicator-sysmonitor add-apt-repository ppa:fossfreedom/indicator-sysmonitor # apt-get update # apt-get install indicator-sysmonitor2.运行indicator 搜索计算机 indicator 点击右键进入preferences 设置 参考: 1.Ubuntu 16.04 标题栏实时显示上…...
![](https://img-blog.csdnimg.cn/92166a17a189438f8110aa848adf98fd.gif#pic_center)
河北网站开发多少钱/如何免费推广一个网站
文章目录流程循环数组简单案例先看看效果图 流程 使用数组的slice() 方法通过条件判断截取原数组相应内容组成新数组 循环数组 let currentPage 0 // arr:原数组 newLen:新数组需要的长度 currentPage:现在的页码// 方法一: function loopData(arr, newLen) {…...
![](/images/no-images.jpg)
新手做网站免费域名/seo优化推荐
常用命令:npm install -g ionic cordova(需要安装node) ionic start cutePuppyPics --v2(建app cutePuppyPics app名字 v2表示用ionic2)cd cutePuppyPicsionic g page myPage (创建某页面 √ Create app/pages/my-page/my-page.html √ Create app/pages/my-page/my-page.ts √…...
![](/images/no-images.jpg)
电子商务网站制作/郑州网站定制
一、事务的基本原理Spring事务 的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获取连接 Connection con Driver…...
![](/images/no-images.jpg)
网站建设意见征求表/网络推广方案的内容
暂无评价|0人阅读|0次下载|举报文档 DSC曲线的三次样条拟合与Matlab实现_能源/化工_工程科技_专业资料。DSC曲线拟合与Matlab实现第...人阅读|次下载 曲线拟合的最小二乘法matlab举例_中医中药_医药卫生_专业资料。曲线拟合的最小二乘法 学院:光电信息学院 姓名:赵海峰 学号:20…...
![](https://img-blog.csdnimg.cn/img_convert/fb8938ffc4a720b43aa1ebf2e36de7b8.png)
网站建设人员考核/重庆seo整站优化系统
洪锦祥在实验室洪锦祥供图每次乘坐G8次“复兴号”高铁,当列车以350公里时速驶过“滕州—枣庄”路段时,江苏省建筑科学研究院高性能土木工程材料国家重点实验室副主任洪锦祥,都会下意识地从座位上起身,看看车窗外自己曾经日夜奋战过…...