快速理解 HTTP协议
Posted charlies
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速理解 HTTP协议相关的知识,希望对你有一定的参考价值。
什么是http
http 即超文本传输协议,是一种用于分布式、协作式、和超媒体信息系统的应用层协议,是万维网的数据通信的基础;设计其最初目的是为了提供一种发布和接收html页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。
理解http协议
http 协议是TCP/IP协议栈/族中"应用层"的一个协议,用于在S(服务器)和C(B)(客户端)之间传递超文本内容,(如HTML、js、css、音视频等),其默认端口是80
一个完整的 web 访问过程(http 协议访问过程)
URL 详解
完整格式
scheme://host[:port#]/path/…/[?query-string][#anchor]
各参数详解:
scheme:方案名/模式名,指定以哪种协议从服务器获取指定资源;方案名不区分大小写,常见方案:HTTP HTTPS FTP MAILTO RTSP FILE NEWS等
PORT:端口号,没项服务在服务器上都对应一个监听端口号
严格来讲,计算机中对外提供的服务程序可以绑定到任一端口上,从而实现监听客户端连接请求的任务
常见协议指定一些默认端口号,应努力避免混用
PARAMS:参数,某些方案会使用参数来指定输入参数,每个参数都采用"名/值对"形式,一个URL中可以有多个这样的"名/值对",使用分号(;)相隔
QUERY:查询字符串,某些方案会使用查询字符串传递参数以激活应用程序,使用?与其他组件分割
http://www.baidu.com/s?wd=js&issp=1&f=8 不能有中文不能有空格
FRAG:片段,也称为ANCHO(锚点)、TAG(标签)指一个资源中某一个部分的名字。引用对象时,不用frag字段传送给服务器,该字段是在客户端内部
使用,通过#与其它部分分割
http://www.xiaoshuo.com/XiYouJi.html#chapeter8
URL与 URI URN 关系
URI:统一资源标志符 包含URL和URN,意思就是确定 URL 的位置,通俗点说就指定网站 ip
URL:统一资源定位符 http://www.baidu.com
URN:统一资源命名符 mailto:admin@tarena.com
HTTP协议详解
HTTP通信
请求与响应原理:
Message:消息/报文,是在HTTP客户端与服务器之间传递的数据块 将是将4k 的数据块进行拆分
HTTP协议规定,消息必须符合特定的格式才能彼此理解
Request Message:客户端向服务器发送的请求消息
Reponse Message:服务器根据客户端的请求消息,返回给客户端的相应消息
消息/报文的组成?
Start Line:消息起始行,必须,消息的基本描述信息
(1)起始行 CRLF
(2)消息头部/报头 1CRLF
消息头部/报头 2CRLF
消息头部/报头 3CRLF
CRLF
(3)消息正文/主体CRLF
Header:消息头部/报头,可能有0~n个,消息详细属性
Body:消息主体,可选,包含数据主体
起始行和消息头是纯ASCLL字符,每行以CRLF结束
消息主体是一个可选的数据块,其中的数据可以为空,或者为字符数据(如html、css、js等)或者二进制数据(图片等)
HTTP消息结构概述
包括请求消息的三部分
(1)起始行/请求行
请求方法 空格 请求URI 空格 所用协议 CRLF
(2)消息头部/请求头部
(3)消息主体/请求正文
请求方法:指定了客户端想对指定的资源/服务器做任何操作:可用的请求方法
1) GET 指明客户端想从客户端获取指定的资源
2) POST指明客户端想发送给服务器的一些数据
3) PUT 指明客户端想让服务器保存某个资源
4) DELETE 指明客户端想让服务器删除某个资源
5) HEAD 指明客户端只想查看指定资源的相应头部信息,而不是资源本身
6) TRACE 客户端可以对请求消息的传输路径进行追踪
7) OPTIONS 客户端询问服务器可以提交哪些请求方法
HEAD 只要资源本身,减少资源请求
PUT DELETE 有些服务器直接被禁用的
响应消息的三部分
(1)起始行/相应行
(2)消息头部/响应头部
(3)消息主体/响应正文
常见面试题
1.常见的服务器端口号
ftp 21
2.HTTO1.0和1.1重要区别
HTTP 1.0 Offline 离线模式,表示断开链接。
HTTP 1.1 Connection:Keep-Alive 保持连接一段时间
HTTP 0.9 只支持Get方法,不支持MIME(Multipurpose Internet Mail Extension多用途的互联网邮件扩展),用于在电子邮件中指定附件文件类型的扩展表达方式
HTTP/1.0+ 支持持久链接、虚拟主机、代理连接等新特性,成为非官方的标准
虚拟主机就是一台服务器能跑很多的网站。
3.列举HTTP协议1.1相较于HTTP/1.0的改进
支持持久连接、虚拟主机、代理连接
4.常见的 MIME 类型
此处表格嵌套
MIME类型 后缀名是不可靠的
image/jpeg .jpg
image/jpeg .jpeg
text/html .htm
text/html .html
text/html .xhtml
[谨记的数据格式]
json数据格式:application/json
xml数据格式: application/xml
png:image/png
doc:application/msword
URL语法:
URL完整格式:
://:@:/:#
js中的encodeURI()函数不会对 :/@;?#进行编码
encodeURIComponent()函数会进行编码
以上是关于快速理解 HTTP协议的主要内容,如果未能解决你的问题,请参考以下文章