深圳做网站的给说,怎么查自己名下有没有注册公司,网站如何做内链,做一个招聘网站需要多少钱目录 1. URL2. HTTP 协议2.1. HTTP 请求2.2. HTTP 响应 1. URL
URL 表示着是统一资源定位符(Uniform Resource Locator), 就是 web 地址#xff0c;俗称“网址”; 每个有效的 URL 可以通过互联网访问唯一的资源, 是互联网上标准资源的地址;
URL 的主要由四个部分组成:
sche… 目录 1. URL2. HTTP 协议2.1. HTTP 请求2.2. HTTP 响应 1. URL
URL 表示着是统一资源定位符(Uniform Resource Locator), 就是 web 地址俗称“网址”; 每个有效的 URL 可以通过互联网访问唯一的资源, 是互联网上标准资源的地址;
URL 的主要由四个部分组成:
scheme :// host[:port] / pathscheme(协议): 所使用的传输协议, 通常为 HTTP 协议或 HTTPS 协议;host(主机): 是资源所在的网站或服务器的名字, 又称为域名; 主机名也可以使用点分十进制的 IP地址 代替; 使用 :// 与协议分隔;port(端口): 端口号, 通常会被省略, 表示使用协议默认的端口号; 使用 :与主机分隔;path(路径): 所访问资源的相对路径; 同时第一个 / 可以分隔端口号和资源路径;
2. HTTP 协议
HTTP(超文本传输协议HyperText Transfer Protocol) 是一种用于分布式、协作式、超媒体信息系统的应用层协议, 是基于 TCP/IP 通信协议来传输数据的;
HTTP 协议由 HTTP请求 和 HTTP响应 两部分组成
2.1. HTTP 请求
HTTP 请求由 请求行(request line), 请求头部(header), 空行和请求数据 四个部分组成; 请求行: 请求方法: 指定要执行的操作; 如 GET, POST, PUT, DELETE 等; URL : 请求的资源路径; 协议版本: 协议的版本, 如 HTTP/1.0, HTTP/1.1, HTTP/2.0 等; 请求报头: 包含了请求的具体信息, 由多组 K : V 结构组成; 空行: 请求报头和有效载荷之间的分隔; 有效载荷: 包含要发送给服务器的数据, 可以为空;
方法含义GET从服务器获取资源HEAD类似于 GET但服务器只返回响应的头部不返回实际数据POST向服务器发送数据以创建新资源PUT 向服务器发送数据以更新现有资源。如果资源不存在则创建新的资源DELETE从服务器删除指定的资源OPTION返回服务器支持的 HTTP 方法TRACE回显服务器收到的请求CONNECT建立一个到服务器的隧道通常用于 HTTPS 连接
那么就可以将浏览器视为客户端, 编写服务器, 通过 URL 的方式, 接收浏览器的 HTTP 请求; 可以不做任何处理, 看一看 HTTP 请求;
具体代码实现: [HTTP 网页简易验证]; Server.cc #include Server.hpp
#include Http.hppusing call_back functionResponse(Request);
class Serve
{
public:Serve(call_back cb) : _cb(cb) {}void CallBack(shared_ptrSocket sockfd){Request req;string buf;while (1){// 接收int n sockfd-Recv(buf);if (n 0){LOG(FATAl, Recv fail);break;}// 直接打印 Http 请求cout buf endl;// // 反序列化// req.DeSerialize(buf);// // 回调// Response resp _cb(req);// // 序列化// string package;// resp.Serialize(package);// // 发送// sockfd-Send(package);}}call_back _cb;
};int main(int argc, char *argv[])
{HttpServe hs;Serve serve(bind(HttpServe::HandlerServe, hs, placeholders::_1));TpcServer tpc(bind(Serve::CallBack, serve, placeholders::_1));tpc.Start();return 0;
} 2.2. HTTP 响应
HTTP 响应由 状态行, 响应报头, 空行和响应正文 四部分组成; 状态行: 协议版本: 协议的版本, 如 HTTP/1.0, HTTP/1.1, HTTP/2.0 等; 状态码: 三位数, 表示请求的处理结果; 状态码描述: 状态码的简短描述; 响应报头: 包含了响应的具体信息, 由多组 K : V 结构组成; 空行: 请求报头和有效载荷之间的分隔; 有效载荷: 包含服务器返回的数据, 如请求的网页内容, 图片, JSON数据等;
状态码含义1xx表示通知信息服务器收到请求需要请求者继续执行操作2xx表示成功操作被成功接收并处理3xx表示重定向需要进一步的操作以完成请求4xx表示客户端错误请求包含语法错误或无法完成请求5xx表示服务器错误服务器在处理请求的过程中发生了错误
可以通过 telnet 命令获取服务器的响应;
telnet baidu.com 80输入 ^] (ctrl ]) 连接服务器; 发出简易的请求;
// 换行
GET / HTTP/1.0
// 换行