1. 媒体类型:http服务器会给在http中传送的http资源对象附加一个MIME类型,接收http资源对象的客户端会根据这个类型来判断是否能够进行处理,例如浏览器就能够处理上百种mime类型的http资源对象
2. MIME类型是一种文本标记,表示一种主要对象类型和一种特定的子类型,中间用一条斜杠来分隔,例如text/html、imge/gif
3. 每个http服务器资源都有一个名字:统一资源标示符URI,给定了URI,htpp就能够解析出对象
4. URI有两种形式:url和urn (目前一般都认为uri就是url)
5. url:统一资源定位符,一般格式包括3部分:协议类型(http://)、web服务器的英特网地址(www.baidu.com)、web服务器的某个资源(kw=url),例如:http://www.baidu.com?kw=url
6. http事务,组成部分:包含命令和url的http请求报文 + 包含事务结果的http响应报文, 前者是web客户端发送给http服务器,后者相反
7. http支持不同的请求命令,这样的命令就叫着http方法,而每个http请求报文中都含有一个方法,从而告诉http服务器该做什么操作
8. 常见的http方法:get、post、put、delete、head
9. 每个http响应报文都包含一个状态码,告知客户端请求是否成功,例如404、500等
10. http(应用层)----->tcp(传输层)---->ip(网络层)---->数据链路层---->物理层
11. http就是使用tcp来传送报文的
12. 通过tcp来传送报文,必须要知道http服务器的ip地址和tcp端口号,这个两个是从http请求报文中的url部分获取
13. url中的服务器英特网地址(也就是域名)可以通过dns(域名服务)来解析成对应http服务器的ip地址,而端口号默认是80
14. 通过url访问的http事务的步骤大致如下
浏览器从url中解析出服务器的域名
浏览器将服务器域名转换成服务器的ip地址
浏览器将端口号(如果有的话)从url中解析出来
浏览器根据ip地址和端口号与对应的http服务器建立一条tcp连接
浏览器向http服务器发送一条http请求报文
http服务器向浏览器回送一条http响应报文
关闭tcp连接,浏览器显示内容
15. 代理:"客户端"和"http服务器"间的实体,接收客户端的所有http请求从而转发给http服务器
网关:连接其他应用程序的http服务器,用户将http转换成其他协议,例如http/ftp网关会把http请求接收为ftp uri请求,但是通过ftp协议来获取文档,得到的文档会被封装成一条http报文,返回给客户端
agent代理:代表用户发起http请求的"客户端程序",例如web浏览器就是一种,网络蜘蛛也是
隧道:在两条http链接上对原始数据进行盲转发的http服务程序,http隧道一般用来在http链接上转发非http数据,转发时不会窥探数据
16. URL分基本的三部分:( 方案://服务器位置/路径 )
1. url方案:告知web客户端怎样访问资源,一般理解成协议
2. 服务器位置:一般就是域名+端口
3. 资源路径:说明请求的是服务器上哪些特定的本地资源
URL详细的三部分:方案:// 账号名:账号密码 @主机:端口号 /路径 ;参数 ?查询 #片段
例如:http://ajia:ajiapwd@www.ajia.com:8088/my-plan;id=11/add.html;type=3?is_app=1#detail
不同路径可有不同的参数:my-plan路径的参数是id,add.html路径的参数是type。
片段主要是用于显示返回资源中的特定的部分,http服务器并不会直接处理片段,而是在返回数据资源给web端后,根据该片段来显示那部分资源
17. URL编码机制:对不安全的字符进行转义,用一个%加两个表示字符ascll码的十六进制,例如空格号转义成%20,url中不安全的字符是跟协议有关系的
18. url各种方案(协议):
https:与http是一对的,唯一的区别是https使用了ssl,ssl为http链接提供了端到端加密机制,默认的端口是443
mailto:只想email地址,与一般的方案有所区别
ftp
rtsp、rtspu:实时流传输协议,主要用于解析音频视频的协议
file
news
telnet:用于访问交互式业务
19. 报文 :请求报文和响应报文
1. 请求报文的结构形式:
方法 url 协议的版本(这里称作为:起始行或请求行) 例如:GET /img/line.png HTTP/1.0
头部 HOST: WWW.lima.com
实体的主体部分
2. 响应报文的结构形式:
协议版本号 状态码 原因短语(这里称作为:起始行或响应行) 例如:HTTP/1.0 200 OK
头部 Content-type: text/plain
Content_length: 19
实体的主体部分 I am entity body
组成部分的说明:
头部:由 1个名字、一个冒号、一个空格(可选)、一个值、一个空行(CRLF,必须以此作结束)。所以说可以有零个或多个头部,上面例子中的请求报文是1个头部,响应报文有2个头部
头部分类:
通用头部:请求和响应报文都可用
请求头部
响应头部
实体头部:描述主体的长度和内容,或资源自身
扩展头部:自定义的头部
实体的主体:是由任意数据组成的数据块,并不是所有报文都包含实体的,有时候实体就以一个CRLN作为内容而结束
方法:常用的7中http方法
GET 从服务器获取数据 不需要实体的主体
POST 向服务器发送需要处理的数据 需要
HEAD 只从服务器获取头部 不需要
PUT 将请求的主体部分存在在服务器 需要
TRACE 对可能通过代理的报文进行跟踪 不需要
OPTIONS 检查可以在服务器上执行哪些方法 不需要
DELETE 从服务器上删除数据 不需要
还可以扩展http,自定义http的方法,成为扩展方法
trace原理:在到达目的http服务器时回弹一条trace响应,并在响应主体中包含收到的原始请求报文,这样就可以通过对比跟踪,缺点:中间的代理会对trance做限制
状态码:100-199:信息提示
200-299:表示成功
300-399:资源被移走
400-499:客户端的请求错误
500-599:服务器响应http错误
2XX:成功
204:表示服务器已经执行成功,但是响应报文中不包括任何的实体主体部分,一般用于客户端向服务器发送数据,而服务器不用向客户端发送任何新数据的情况
206:表示客户端进行了范围请求(请求报文的头部的Content-Range),而服务器对这范文请求响应成功并且返回了该部分资源
3XX:资源重定向
301:永久重定向
302:临时重定向
303:与302类型,访问的资源存在另一个url,应该使用get的方法去或者该资源
ps:当301、302、303的响应状态码返回时候,一般浏览器会把post改成get方式,删除请求报文中的主体,重新自动发松请求
304:请求成功响应,但是没有符合条件的资源可返回,一般是客户端通过get方式发送包含条件选项(If-Modified-Since、If-Unmodified-Since)的请求报文后,服务器响应后发送的响应报文中不包括任何主体部分
4XX:服务器无法响应请求,客户端的错误
400:请求报文中存在语法错误
401:需要http认证
403:请求的资源被服务器拒绝,例如资源是有权限限制的
5XX:服务器处理请求出现错误,服务器端错误
503:服务器处于负载或进行停机维护的状态,无法处理请求
代理:缓存代理、透明代理(proxy)
网关:将http协议转换成非http协议之后与其他的非http服务器链接
隧道:不解析http,通过加密机制例如ssl加密数据后进行数据传送到服务器
http首部:
1.通用首部:
cache-control:no-cache no-store max-age
Connection
Via:记录代理服务器的数据
2.请求首部
Accept:请求的资源的类型,多种类型用英文逗号隔开,;q=0.8 表示权重,最大和默认是1.0
Host:必须存在的一个选项,如果服务器使用了虚拟主机部署了多个域名,需要利用该值来确定是哪个域名,如果服务器未设置主机名,可以使用空值
If-Match :如果该值与资源ETag值一致,则请求会被服务器响应,否则不接受该请求,返回412状态码
If-No-Match
If-Modified-Since:如果在该值日期之后,请求的资源有修改过,则被响应,否则返回304状态码,请求失败,可以用于确认客户端或者代理的资源有效性,响应的报文首部中的Last-modified的值为最后的修改时间
If-Unmodified-Since
If-Range:需要结合 Range来使用,如果该值与ETag值一致,那么返回Range请求范围的资源,如果不一致则返回所有的资源
3.响应首部
Accept_Range:是否能处理范围请求,bytes表示可以,none表示不可以
Age:服务器多久前响应了请求,单位为秒
ETag:告知客户端请求资源的实体标识,每个资源的ETag值不同,同一个资源更新后ETag也是不同的
Location:遇到3**状态时候,用于重定向跳转的地址
Retry-After:秒数或具体日期,之后再来访问,结合503或者3XX状态来用
4.实体首部:针对请求和响应报文的实体部分而使用的首部,补充资源内容更新时间等等与实体相关的数据
Content-Range:
Expires:资源缓存过期时间,如果请求首部中的Cache-Control中指定了max-age,则该选项失效
Cookie
响应报文中set-cookie:name=value; expires=XXXXXXX; path=/; domain=tp.com; secure; httponly
其中secure,如果使用该值,表示只有在https下才能使用cookie,
其中httponly,如果使用该值,则表示在客户端中无法使用JavaScript来获取cookie,防止了xss攻击
请求报文中cookie
相关推荐
HTTP、TCP、IP面试知识点大全。基础知识以及日常面试常问的问题。附加问题的延伸,等等等等。日常面试都是从这里问的。
### 知识点生成 #### 实验背景及目标 本实验是湘潭大学网络协议课程中的一个环节,旨在通过实践操作加深学生对HTTP协议的理解。实验选取了常见的HTTP协议作为研究对象,通过对HTTP协议的深入剖析,使学生能够掌握...
【TCP/IP协议基础知识点】 TCP/IP协议是互联网通信的基础,它是连接互联网上计算机的通信协议。TCP/IP模型包括四个主要层次:应用层、传输层、网络层和链路层,每一层都承载着不同的功能。 1. **TCP/IP定义**: ...
HTTP(Hypertext Transfer Protocol)超文本传输协议...了解HTTP协议对于计算机科学的学习,特别是对于准备考研的同学来说,是非常重要的基础知识。希望以上内容能帮助到正在备考的你,祝你考试顺利,迈向理想的学府!
知识点2: HTTP协议 HTTP(HyperText Transfer Protocol)是网络上最常用的协议之一,用于在万维网(World Wide Web)上交换超文本信息。HTTP协议基于客户机/服务器架构,客户机向服务器发送请求,服务器响应请求并...
《CCNA知识点详解》 CCNA,全称Cisco Certified Network Associate,是...以上就是CCNA学习中的关键知识点,涵盖了网络基础、协议、设备和通信机制等多个方面。掌握这些知识,将为网络工程师的角色打下坚实的基础。
"22考研-曲阜师范大学-网络知识点总结" 该资源主要总结了计算机网络的基础知识点,涵盖计算机网络的概念、组成与功能、网络的分类、物理层、数据链路层、网络层、传输层、应用层等重要知识点。 计算机网络的概念、...
HTTP协议中文版的知识点: 1. HTTP协议概述: HTTP(HyperText Transfer Protocol,超文本传输协议)是分布式、协作的、超媒体信息系统的应用层协议。它是互联网上应用最为广泛的一种网络协议。HTTP协议是无状态的...
这个中文版PDF文件可能是对HTTP协议的详细解读,涵盖了HTTP的基本概念、工作原理、请求方法、响应状态码、首部字段、URL、方法和版本等核心知识点。 HTTP协议是基于TCP/IP协议的应用层协议,主要用于在Web浏览器和...
内容概要:本文档提供了20道关于TCP/IP协议的习题及其详细解答,涵盖了TCP/IP的基本概念、工作原理和...阅读建议:每个习题后面都附有详细的解答和解释,建议在完成每道习题后仔细阅读答案,加强对知识点的理解和记忆。
### HTTP协议核心知识点详解 #### 一、HTTP协议概述 **HTTP**(HyperText Transfer Protocol)是一种用于分布式、协作式和超媒体信息系统的信息传输协议。它最初由Tim Berners-Lee等人设计,目的是为了支持万维网的...
WWW浏览器负责接收用户的请求,并利用HTTP协议将用户的请求传送给WWW服务器,在服务器请求的页面送回到浏览器后,浏览器再将页面进行解释,显示在用户的屏幕上。 页面地址和URL 统一资源定位符(URL)是一种用于...
以上就是关于“基于HTTP协议的开发接口”的一些关键知识点,涵盖了HTTP协议的基本原理、接口设计的要素以及安全性等方面。在实际开发中,开发者需要结合具体的业务场景灵活运用这些知识,以创建高效、可靠的接口。
Web学习知识点总结涵盖了Web工作原理、HTTP协议、Web服务器缺陷及解决方案、Web应用程序的组成、Servlet等内容,这对于理解和掌握Web开发至关重要。 首先,HTTP(超文本传输协议)是Web通信的基础,它定义了客户端...
标题中的“DAHUA大华摄像头HTTP协议API”意味着文档提供的是大华品牌摄像头产品通过HTTP协议交互的API(应用程序编程接口)的详细说明。文档属于版本1.0,意味着这是API规范的初始版或者是某个产品的特定版本。由于...
下面将详细讨论HTTP协议的基础知识、连接过程以及下载操作,这些都是C++实现HTTP协议时可能涉及的关键点。 一、HTTP协议基础知识 1. 请求和响应:HTTP协议是基于请求-响应模型的。客户端(如浏览器)发送一个HTTP...
http知识点汇总,Fiddle工具使用介绍,请求报文和响应报文介绍及应用,常见响应状态码介绍,如何设置响应状态码
【测试开发岗位校招知识点详解】 测试开发岗位是IT领域中的一个重要职位,它结合了软件测试和软件开发的技能,要求求职者不仅要有扎实的编程基础,还要掌握系统的测试理论和实践经验。以下是对2020年校招测试开发岗...
在本文中,我们将深入探讨如何使用 Netty 实现 HTTP 协议的开发,结合提供的“NettyStudyServer”文件,我们来详细了解一下相关知识点。 1. **HTTP 协议基础** - HTTP(超文本传输协议)是互联网上应用最为广泛的...
知识点:IP 协议是无连接的数据报服务,意味着IP 协议不保证数据包的传输顺序和可靠性。 10. Internet 采用了目前在分布式网络中最流行的模式是什么? 答案:客户 / 服务器 知识点:Internet 采用了客户 / 服务器...