HTTP协议
定义
- HyperText Transfer Protocol超文本传输协议
目的
- 提供一种发布和接受html的方法
HTTP请求包
请求行
格式:Method Request-URI HTTP-Version CRLF
- Method 表示请求方法代码
- Request-URI 是一个统一资源标识符
- HTTP-Version 表示请求的HTTP协议版本
- CRLF 表示回车和换行
常见的请求方法
- GET:请获取Request-URI所标识的资源
- POST:在Request-URI所标识的资源后附加新的数据
- HEAD:请求获取有Request-URI所标识资源的响应消息报头
- PUT:请求服务器存储一个资源,并且用Request-URI作为标识
- DELETE:请求服务器删除Request-URI所标识的资源
- OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求
消息报头
一些常见的请求报头
- User-Agent:包含发出请求的用户信息
- Accept:指定客户端接受哪些类型的信息。eg:Accept:image/gif,表明客户端希望接受gif图像格式的资源
- Referer:告诉服务器我是从哪个页面服务器链接过来的
- Coookie:身份凭证
其他消息报头
- connection:有关http请求是否保复用(connection:keep-alive/connection:close)
- accept-enconding:告诉服务器,浏览器支持gzip压缩
请求正文
具体的内容
HTTP响应包
状态行
格式:HTTP-Version Status-Code Reason-Phrase CRLF
- HTTP-Version:表示HTTP服务器版本
- Status-Code:表示服务器发回的响应状态码
- Reason-Phrase:表示状态码的文本描述
常见的状态码
- 200 OK 客户端请求成功
- 400 Bad Request 客户端请求有语法错误,不能被服务器所理解
- 403 Forbidden 服务器收到请求,但是拒绝服务
- 404 Not Found 请求资源不存在
- 500 Internal Server Error 服务器发生不可预期的错误
- 503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间可能恢复正常
消息报头
一些常见的消息报头
- Server :Web服务器名称
- Set-cookie: 服务器向客户端发送的信息
- Location :服务器通过这个头告诉浏览器去访问哪个页面,浏览器接受到这个请求后,通常会立刻访问Location头所指向的页面,通过配合302状态码
- Refresh :服务器通过这个告诉浏览器定时刷新浏览器
其他消息报头
- content-type:内容类型
- X-Frame-Options: 浏览器可不可以加载iframe页面(deny:不能嵌入任何iframe或frame/sameoring:相同域名可以嵌入/allow-from uri:只能被嵌入到uri中)
响应正文
HTTP与HTTPS的区别
- HTTP的URL是以http://开头;HTTPS的URL是以https://开头
- HTTP是不安全的;HTTPS是安全的
- HTTP的标准端口是80;HTTPS的标准端口是443
- 在OSI网络模型中,HTTP工作在应用层,HTTPS工作在传输层
- HTTP无需加密,HTTPS对传输的数据进行加密
- HTTP无需证书,HTTPS需要认证证书
web通信
DNS
- Domain Name System 域名系统
- 因特网上作为域名和IP地址相互映射的一个分布式数据库
- 域名解析:通过主机名最终得到该主机对应IP地址的过程
- DNS运行在UDP协议之上,使用端口53
步骤(待完善)
URL协议
- 统一资源定位符
格式
schema://host[:port]/path/.../[?query-string][#anchor]
- schema 协议
- host 域名 或 IP
- :port 端口号
- path/.../ 路径
- ?query-string 发送给http服务器的数据
- anchor 锚点:指向html上的不同元素
web前后端组成
web前端
组成
- html
- css
- java script
web后端
- web服务
- 脚本语言
- 语言解释器
- 数据库
常见组合