网络高级day03(Http)

目录

【1】HTTP简介

[【2】 HTTP特点](#【2】 HTTP特点)

[【3】 HTTP协议格式](#【3】 HTTP协议格式)

1》客户端请求消息格式

[1> 请求行](#1> 请求行)

[2> 请求头](#2> 请求头)

[3> 空行](#3> 空行)

[4> 请求数据](#4> 请求数据)

2》服务器响应消息格式


【1】HTTP简介

HTTP协议是Hyper Text Transfer Protocol (超文本传输协议)的缩写,是用于Web Browser(浏览器)到Web Server(服务器)进行数据交互的传输协议。

HTTP是应用层协议

HTTP是一个基于TCP通信协议传输来传递数据(HTML文件、图片文件、查询结果等)。

HTTP协议工作于B/S架构上,浏览器作为HTTP客户端通过URL主动向HTTP服务器端,即WEB 服务器发送所有请求,Web 服务器根据接收到的请求后,向客户端发送响应信息。

HTTP默认端口号为80,但是你也可以改为8080或者其他端口号

【2】 HTTP特点

HTTP是短连接:无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。

HTTP是无状态的:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则他必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时他的应答就较快。

【3】 HTTP协议格式

1》客户端请求消息格式

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行、请求头部、空行和请求数据四个部分组成。

1> 请求行

请求行是由请求方法字段、URL字段、HTTP协议版本字段3个部分组成。请求行定义了本次请求的方式,格式如下:GET /example.html HTTP/1.1(CRLF)

HTTP的请求方式:

http 协议中共定义了八种数据的请求方式。分别是:OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE、CONNECT;常用的是GET、POST,其他的请求方式都可以通过这两种方式间接的实现。(POST 增、DELETE 删、PUT 改、GET 查)

GET方法和POST方法的区别:

GET 通常用来从服务器上获得数据,而非修改信息;POST 用来向服务器传递数据 。

1、请求数据带参数时:GET请求数据会附加在URL 之后,以 ? 分割 URL 和传输数据,多个参数之间用 & 链接。POST 请求会把请求的数据放置在HTTP 请求包的包体中。因此,GET请求的数据会暴露在地址栏中,而POST请求不会。

2、传输数据的大小:在HTTP规范中,没有对URL的长度和传输数据大小的限制。但是在实际开发过程中,对于GET 请求,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求时,传输数据会受到URL长度的限制。对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上,各个服务器会规定对POST提交数据大小进行限制,Apache、IIS搜友各自的配置。

3、GET请求返回的内容可以被浏览器缓存起来,而每次提交的POST,浏览器在你按下F5 的时候会跳出确认框,浏览器不会缓存POST请求返回的内容。

4、GET对数据进行查询,POST主要对数据进行增删改!简单说,GET只是读,POST是写。

5、对于参数的数据类型,GET只接受ASCLL字符,而POST没有限制

2> 请求头

也被称作消息报头,请求头是由一些键值对组成,每行一对,关键字和值用英文冒号":"分隔。

允许客户端向服务器发送一些附加信息或客户端自身的信息,典型的请求头:
Accept:作用:描述客户端希望接收的 响应body 数据类型;示例:Accept:text/html

Accept-Charset:作用:浏览器可以接受的字符编码集;示例:Accept-Charset:utf-8

Accept-Language:作用:浏览器可接受的语言;示例:Accept-Language:en

Connection:作用:表示是否需要持久连接,注意HTTP1.1默认进行持久连接;示例:Connection:close

Content-Length:作用:请求的内容长度:示例:Content-Length:348

Content-Type:作用:描述客户端发送的 body 数据类型

3> 空行

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。

4> 请求数据

请求数据:请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户端填写表单的场合。与请求数据相关的最常用的请求头是Content-Type和Content-Length。

2》服务器响应消息格式

HTTP 响应也有4个部分组成,分别是:状态行、消息报头、空行和响应正文。

状态行:由三个部分组成,HTTP协议的版本号、状态码以及对状态码的的文本描述。

例:HTTP/1.1 200 OK(CRLF)。(200表示请求已经成功)

相关推荐
hzyyyyyyyu1 小时前
内网安全隧道搭建-ngrok-frp-nps-sapp
服务器·网络·安全
刽子手发艺2 小时前
WebSocket详解、WebSocket入门案例
网络·websocket·网络协议
速盾cdn6 小时前
速盾:CDN是否支持屏蔽IP?
网络·网络协议·tcp/ip
yaoxin5211236 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin6 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
PersistJiao7 小时前
Spark 分布式计算中网络传输和序列化的关系(一)
大数据·网络·spark
黑客Ash10 小时前
【D01】网络安全概论
网络·安全·web安全·php
->yjy10 小时前
计算机网络(第一章)
网络·计算机网络·php
摘星星ʕ•̫͡•ʔ11 小时前
计算机网络 第三章:数据链路层(关于争用期的超详细内容)
网络·计算机网络