Linux下的网络编程——B/S模型HTTP(四)

简介: Linux下的网络编程——B/S模型HTTP(四)

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

目录
相关文章
|
6天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
19 2
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于BP神经网络的苦瓜生长含水量预测模型matlab仿真
本项目展示了基于BP神经网络的苦瓜生长含水量预测模型,通过温度(T)、风速(v)、模型厚度(h)等输入特征,预测苦瓜的含水量。采用Matlab2022a开发,核心代码附带中文注释及操作视频。模型利用BP神经网络的非线性映射能力,对试验数据进行训练,实现对未知样本含水量变化规律的预测,为干燥过程的理论研究提供支持。
|
24天前
|
运维 监控 网络协议
|
6天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
19 2
|
7天前
|
运维 网络协议 算法
7 层 OSI 参考模型:详解网络通信的层次结构
7 层 OSI 参考模型:详解网络通信的层次结构
18 1
|
1月前
|
网络协议 前端开发 Java
网络协议与IO模型
网络协议与IO模型
网络协议与IO模型
|
1月前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
71 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
18天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
23天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
67 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
28天前
|
Ubuntu Linux 虚拟化
Linux虚拟机网络配置
【10月更文挑战第25天】在 Linux 虚拟机中,网络配置是实现虚拟机与外部网络通信的关键步骤。本文介绍了四种常见的网络配置方式:桥接模式、NAT 模式、仅主机模式和自定义网络模式,每种模式都详细说明了其原理和配置步骤。通过这些配置,用户可以根据实际需求选择合适的网络模式,确保虚拟机能够顺利地进行网络通信。