汕头seo网站推广,上市公司的信息网站,写个网页多少钱,建设网站实训心得本篇内容包括#xff1a;HTTP 协议定义及其特点概述、关于 URL 定义及分类概述、Request 请求、Response 响应 以及 浏览器访问一个网站的全过程 等内容… 一、HTTP 协议概述
HTTP#xff08;HyperText Transfer Protocol#xff09; 即 超文本传输协议#xff0c;它是一种… 本篇内容包括HTTP 协议定义及其特点概述、关于 URL 定义及分类概述、Request 请求、Response 响应 以及 浏览器访问一个网站的全过程 等内容… 一、HTTP 协议概述
HTTPHyperText Transfer Protocol 即 超文本传输协议它是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP 是万维网www的数据通信的基础。
HTTP 作为一个应用层协议它由请求和响应两部分构成是一个标准的个客户端和服务器模型它的主要特点支持客户端/服务器模型、简单快速、灵活、无连接、无状态
1、简单快速
客户端向服务器发送服务请求时只需传路径和请求方法。请求方法包括有 GET、POST、HEAD 等。每种方法规定了客户端与服务器联系的不同类型。由于 HTTP 协议简单使得 HTTP 服务器的程序规模小因而通信速度很快
2、灵活
HTTP 允许传输任意类型的数据对象正在传输的类型由 Content-Type 加以标记最常见的 4 种 Content-Type 的取值如下:
application/x-www-form-urlencoded常见的 form 提交最常见 POST 提交数据的方式。浏览器的原生 form 表单如果不设置 enctype 属性那么最终就会以此钟方式提交数据multipart/form-data文件提交另一种非常常见的 POST 数据提交的方式。我们在使用表单上传文件时必须让 form 的 enctyped 等于这个值application/json提交 json 格式的数据现在越来越多的人把它作为请求头用来告诉服务端消息主体是序列化后的 JSON 字符串。由于 JSON 规范的流行除了低版本 IE 之外的各大浏览器都原生支持 JSON.stringify服务端语言也都有处理 JSON 的函数使用 JSON 不会遇上什么麻烦text/xml提交 xml 格式的数据 XML-RPCXML Remote Procedure Call。它是一种使用 HTTP 作为传输协议XML 作为编码方式的远程调用规范
3、无连接
无连接的含义是限制每次连接只处理一个请求服务器处理完客户端的请求然后响应并收到应答之后就断开连接这种方式可以节省传输时间。
4、无状态
HTTP 协议是无状态协议无状态是指协议对于事务处理没有记忆能力这种方式的一个坏处就是如果后续的处理需要用到之前的信息则必须要重传这样就导致了每次连接传输的数据量增大。好处就是如果后续的连接不需要之前提供的信息响应就会比较快。而为了解决 HTTP 的无状态特性出现了 Cookie 和 Session 技术. 二、关于 URL
1、URL 概述
URLUniform Resource Locator即 统一资源定位器是因特网的万维网服务程序上用于指定信息位置的表示方法。在万维网www上每一信息资源都有统一的且在网上唯一的地址该地址就叫 URL它是 www 的统一资源定位标志就是指网络地址就是我们俗称的网址。
URL 是互联网上标准资源的地址可以从互联网上得到的资源的位置和访问方法的一种简洁的表示。互联网上的每个文件都有一个唯一的URL它包含的信息指出文件的位置以及浏览器应该怎么处理它。
2、URL 结构组成
URL由三部分组成资源类型、存放资源的主机域名、资源文件名。也可认为由4部分组成协议、主机、端口、路径。
http://host[:port]/[a_path]
http://IP主机名/域名:端口/访问的资源路径http 表示要通过 HTTP 协议来定位网络资源host 表示合法的 Internet 主机域名或者IP地址port 指定一个端口号端口号为空则使用缺省端口 80a_path 指定请求资源的 URl如果 URL 中没有给出 a_path那么当它作为请求 URl 时必须以 “/” 的形式给出通常这个工作浏览器自动帮我们完成。 三、Request 请求
Request 请求
作用获取浏览器发送过来的数据组成部分请求行 请求头 请求体请求格式请求方式 请求资源 协议/版本请求例子GET /test/row?usernamerootpassword1234 HTTP/1.1
1、报文头的属性
下面是一个请求的报文: 其中
① 是请求方法GET 和 POST 是最常见的 HTTP 方法除此以外还包括 DELETE、HEAD、OPTIONS、PUT、TRACE。不过当前的大多数浏览器只支持 GET 和 POST② 为请求对应的 URL 地址它和报文头的Host属性组成完整的请求URL③ 是协议名称及版本号。④ 是 HTTP 的报文头报文头包含若干个属性格式为“属性名:属性值”服务端据此获取客户端的信息。⑤ 是报文体它将一个页面表单中的组件值通过 param1value1param2value2 的键值对形式编码成一个格式化串它承载多个请求参数的数据。不但报文体可以传递请求参数请求 URL也可以通过类似于 /chapter15/user.html? param1value1param2value2 的方式传递请求参数。
常见的报文头的属性
字段说明示例Accept可接收的响应内容类型Accept:text/plain (文本类型)Accept-Charset可接收的字符集Accept-Charset: utf-8Accept-Encoding可接受的响应内容的编码方式Accept-Encoding: gzip, deflateAccept-Language可接受的响应内容语言列表Accept-Language: en-USAccept-Datetime可接受的按照时间来表示的响应内容版本Accept-Datetime: Oct, 26 Oct 2022 13:31:00 GMTAuthorizationHTTP协议中需要认证资源的认证信息Authorization: Basic OSdjJGRpbjpvcGVuIANlc2SdDECache-Control请求/回复中的,是否使用缓存机制Cache-Control: no-cacheConnection客户端想要优先使用的连接类型Connection: keep-alive Connection: UpgradeContent-Length以8进制表示的请求体的长度Content-Length: 348Content-Type请求体的MIME类型Content-Type: application/x-www-form-urlencodedDate发送该消息的日期和时间Date: Oct, 26 Oct 2022 13:31:00 GMTExpect表示客户端要求服务器做出特定的行为Expect: 100-continueFrom发起此请求的用户的邮件地址From: userqq.comHost服务器域名和端口号,默认端口可省略Host: www.baidu.com:80 or www.baidu.comIf-Match主要用于PUT,实体匹配才可以操作If-Match: “9jd00cdj34pss9ejqiw39d82f20d0ikd”If-Modified-Since资源未被修改的情况下返回304未修改If-Modified-Since: Dec, 26 Dec 2015 17:30:00 GMTUser-Agent浏览器的身份标识字符串User-Agent: Mozilla/………
2、报文的方法
# GET
GET 请求是最常见的一种请求方式当客户端要从服务器中读取文档时当点击网页上的链接或者通过在浏览器的地址栏输入网址来浏览网页的使用的都是GET方式。
GET方法要求服务器将URL定位的资源放在响应报文的数据部分回送给客户端。GET方法请求参数和对应的值附加在URL后面,利用一个?代表URL的结尾以及附带参数的开始,参数用keyvalue键值对的方式书写,参数和参数之间用符号隔开.一般GET请求的参数的大小受限,最大不超过1024.由于参数明文的显示在了URL上面,因此不太适合传递私密的数据.
# POST
对于上面提到的不适合使用 GET 方式的情况可以考虑使用 POST 方式因为使用 POST 方法可以允许客户端给服务器提供信息较多
POST 方法将请求参数封装在 HTT P请求数据中以名称/值的形式出现可以传输大量数据这样 POST 方式对传送的数据大小没有限制而且也不会显示在 URL 中
# GET和POST的区别
在参数传递上GET 请求的参数是直接拼接在地址栏URL的后面而 POST 请求的参数是放到请求体里面的在长度限制上GET 请求有具体的长度限制即一般不超过1024KB而 POST 理论上没有界限取决于浏览器限制在安全角度上。GET 请求因为数据都是明文显示在 URL 上面的所以 GET 安全和私密性不如 POST总的来说GET 和 POST 都是 TCP 连接并无实质的区别但是由于 HTTP 浏览器的限定导致它们在应用过程中体现出了一些不同GET 产生一个数据包POST 产生两个数据包 对于 GET 请求浏览器会把 header 和 data 一并发出去服务器响应 200(返回数据).对于 POST 请求浏览器先发送 header服务器响应 100 continue浏览器再发送 data服务器响应 200 ok
# HEAD
HEAD 就像 GET只不过服务端接受到 HEAD 请求后只返回响应头而不会发送响应内容。当我们需要查看某个页面的状态的时候使用 HEAD 是非常高效的因为在传输的过程中省去了响应内容部分。
Ps1HTTP是无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,HTTP使用的不是UDP协议(无连接)
Ps2从HTTP/1.1起默认都开启了Keep-Alive保持连接特性简单地说当一个网页打开完成后客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭如果客户端再次访问这个服务器上的网页会继续使用这一条已经建立的连接
Ps3Keep-Alive不会永久保持连接它有一个保持时间可以在不同的服务器软件如Apache中设定这个时间 四、Response 响应
HTTP 协议定义了 web 客户端如何从 web 服务器请求页面以及服务器如何把页面传送给客户端。
HTTP协议采用了 请求/响应 模型即客户端向服务器发送一个请求报文请求报文包括请求的方法、url、协议版本,请求头部和请求数据服务器以一个响应状态行作为响应响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据 作用接收到请求之后服务器向浏览器写回数据组成部分响应行 响应头 空行 响应体响应行协议/版本 状态码 状态码说明
1、HTTP 响应构成
HTTP 响应是由四部分构成 响应行 响应头 空行 响应体
响应行状态行由 HTTP/1.1协议版本 200状态码 OK状态码的描述 构成响应头由一些键值对构成,用来说明客户端要使用的一些附加信息空行响应头后面的空行时必须的响应体响应正文服务器返回给客户端的文本信息
2、常见响应状态码
1xx:已发送请求2xx:已完成响应200:正常响应3xx:还需浏览器进一步操作302:重定向 配合响应头:location304:读缓存4xx:用户操作错误404:用户操作错误405:访问的方法不存在5xx:服务器错误500:内部异常 五、浏览器访问一个网站的全过程
当我们使用浏览器访问一个网站时其实是基于 HTTP 协议浏览器作为客户端向服务器端发送一次请求而服务器端在接收到这次请求后给浏览器反馈一个响应。下面是具体的过程
当用户访问一个网站时首先输入访问的 URL先通过 DNS 进行域名解析将域名解析成对应的 IP 地址经过解析之后浏览器会发起一个 TCP 的连接请求服务器接受请求后通过三次握手建立连接客户端在确认建立连接成功后向服务端发送 HTTP 请求格式的数据包服务器端解析 HTTP 数据包执行用户的这次请求并生成一个 HTTP 响应格式的数据包发送给客户端浏览器在收到服务器端的数据包之后再进行解析再通过 HTML 格式呈现给用户客户端再通过四次握手释放连接